Linux按用户名(EUID和RUID)列出进程
如何按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