哪个用户运行的进程最多?

哪个用户运行的进程最多?

我的top看起来像这样:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          
 6524 asjzdiwq  30  10  500m  41m  24m S  0.0  0.3   0:15.27 php-cgi      
21274 asjzdiwq  30  10  500m  41m  24m S  0.0  0.3   0:04.97 php-cgi      
 9047 asjzdiwq  30  10  500m  40m  24m S  0.0  0.3   0:13.72 php-cgi      
26918 asjzdiwq  30  10  499m  40m  24m S  0.0  0.3   0:12.87 php-cgi      
13168 ahfvw0d1  30  10  498m  35m  20m S  0.0  0.2   0:03.49 php-cgi      
 8859 realnoni  30  10  495m  33m  20m S  0.0  0.2   0:11.27 php-cgi      
 6590 asjzdiwq  30  10  495m  32m  20m S  0.0  0.2   0:13.34 php-cgi      
 5657 holeyrai  30  10  495m  31m  19m S  0.0  0.2   0:04.47 php-cgi      
14480 ripplecr  30  10  498m  31m  17m S  0.0  0.2   0:02.90 php-cgi      
14442 ripplecr  30  10  497m  31m  17m S  0.0  0.2   0:02.00 php-cgi      
10720 computer  30  10  496m  31m  18m S  0.0  0.2   0:08.75 php-cgi      
23821 loghome   30  10  496m  31m  18m S  0.0  0.2   0:02.22 php-cgi      
17623 devilsti  30  10  495m  31m  19m S  0.0  0.2   0:05.81 php-cgi      
13305 realnoni  30  10  495m  30m  18m S  0.0  0.2   0:06.29 php-cgi      
14461 ripplecr  30  10  496m  30m  17m S  0.0  0.2   0:01.47 php-cgi           
 8738 holeyrai  30  10  495m  30m  18m S  0.0  0.2   0:03.37 php-cgi      
17569 devilsti  30  10  495m  30m  18m S  0.0  0.2   0:05.73 php-cgi      
13174 ahfvw0d1  30  10  484m  30m  18m S  0.0  0.2   0:04.00 php-cgi      
16126 realnoni  30  10  484m  30m  18m S  0.0  0.2   0:12.08 php-cgi      
31561 a0w4pkbp  30  10  496m  30m  17m S  0.0  0.2   0:03.54 php-cgi      
31565 ahfvw0d1  30  10  484m  29m  17m S  0.0  0.2   0:05.80 php-cgi      
21275 asjzdiwq  30  10  484m  29m  18m S  0.0  0.2   0:01.77 php-cgi      

您可以看到同一个“USER”可以有多个“COMMAND”作为“php-cgi”运行。我想找出哪个用户运行的进程最多,并统计他们正在运行的进程数量。

答案1

要计算每个用户的所有进程:

ps -eo user|sort|uniq -c|sort -n

或者只让那些运行 php-cgi 的:

ps -eo user:15,cmd|sed -n '/php-cgi/s/ .*//p'|sort|uniq -c|sort -n

答案2

使用ps。从man ps

-U userlist
按真实用户 ID (RUID) 或名称选择。它选择真实用户名或ID在userlist列表中的进程。真实用户 ID 标识创建进程的用户,请参阅 getuid(2)。

-u userlist
按有效用户 ID (EUID) 或名称选择。这将选择有效用户名或 ID 在用户列表中的进程。有效用户 ID 描述了进程使用其文件访问权限的用户(请参阅 geteuid(2))。与 U 和 --user 相同。

例如,要查看 user 的所有进程asjzdiwq,您可以使用:

ps -u asjzdiwq  ## Using RUID
ps -U asjzdiwq  ## Using EUID

相关内容