Linux按用户名(EUID和RUID)列出进程

时间:2020-01-09 10:41:45  来源:igfitidea点击:

如何按Linux上的用户名列出进程。
如何使用Linux命令行选项按特定的用户名显示所有进程?
简介Linux进程不过是运行程序实例而已。
例如,当您启动Firefox浏览Internet时,可以创建一个新进程。
在Linux中,每个进程都有一个唯一的编号,称为进程标识(PID)。

Linux内核确保每个进程都获得唯一的PID。
在现代Linux发行版上,/sbin/init或/lib/systemd/systemd的PID始终为1,因为它永远是基于Linux的系统上的第一个进程。

ps命令用于在Linux上"列出"当前正在运行的"进程"及其PID。

Linux按用户名列出进程

查看特定用户在Linux中创建的进程的过程如下:

  • 打开终端窗口或应用
  • 要仅查看Linux上特定用户拥有的进程,请运行:ps -u {USERNAME}
  • 通过名称运行来搜索Linux进程:pgrep -u {USERNAME} {processName}
  • 按名称列出进程的另一种选择是运行top -U {userName}htop -u {userName}命令

让我们详细查看示例,以显示Linux上特定用户的所有过程。

如何查看Linux中特定用户创建的过程

查看所有由名为tom的用户创建的进程:

ps -u tom

或者

ps -U tom

EUID是有效用户ID。
有效用户ID描述了该进程使用其文件访问权限的用户。

RUID是真实用户ID。
真实用户ID标识创建流程的用户。
所以:

  • -u tom:按RUID显示所有进程
  • -U tom:按EUID显示所有进程

您可以使用用户格式获取以千斤顶(实际[RUID]和有效ID [EUID])运行的每个进程的列表:

ps -U Hyman -u Hyman
ps -U Hyman -u Hyman u
## see all process run by, qemu and postfix users ##
ps -U qemu -u qemu
ps -U postfix -u postfix
ps -U postfix -u postfix u

如何使用top/htop显示特定用户的所有进程

语法很简单,可以查看由名为Hyman的用户创建的所有进程:

top -U Hyman

Linux使用top命令按用户名列出进程

我最喜欢的用于检查哪个用户正在运行进程的命令:

htop -u Hyman

Linux使用htop显示由名为Hyman的用户创建和使用的所有进程

如何显示与流程关联的用户ID

另一个选择是结合使用ps命令和grep命令/egrep命令:

sudo ps -ef | grep {userName}
sudo ps -efl | grep {userName}
sudo ps -efl | grep Hyman
sudo ps -ef | grep nginx
sudo ps -efl | grep 'www-data'

与Linux进程lighttpd,nginx和php-fpm相关联的www数据用户ID。

要确认用户标识,请按以下方式运行cat命令/egrep命令/grep命令或/etc/passwd:

cat /etc/passwd
grep 'www-data' /etc/passwd

您也可以打印用户名为www-data的进程树,运行pstree命令:

pstree [options] {userName}
pstree www-data
pstree -l -a -p -s Hyman
pstree -laps www-dat

其中:

  • -l:长格式
  • -a:显示命令行参数
  • -p:显示Linux PID
  • -s:查看选定进程的父级

pgrep命令

pgrep命令可以基于用户名查找进程。
语法为:

### Only match processes whose Linux effective user ID (euid) is listed ###
pgrep -u euid
### Only match processes whose effective user ID (uid) is listed ##
pgrep -U uid
pgrep -l -u Hyman
pgrep -l -U www-data