题 是否可以过滤顶部以显示特定的过程?


我跑得很高,我想总是看到java / tomcat / redis / mysql / mongo,这可能吗?


7
2017-12-23 22:19






答案:


你可以做这样的事情

top -p `pgrep -d ',' "java|tomcat|redis|mysql|mongo"`

这得到了 pgrep 生成一个逗号分隔的pid传递列表 top -p


13
2017-07-25 08:40



更简单:) - Mircea Vutcovici
我一直在努力弄清楚如何找到多个进程名称的进程列表,直到我看到你是如何做到的。 - Iain
未来观众的注意事项 - 此方法可能无法提供您期望的数据。 a)此方法仅显示top时运行的进程 开始。 Top的正常行为是自开始以来显示新流程。 b)我读到的顶级手册说-p限制为20个进程ID。看: stackoverflow.com/questions/12075591/... - MaasSql
运行top -c后,点击o并在列上写一个过滤器,例如要显示COMMAND列包含字符串foo的行,请写入COMMAND = foo - MaasSql


不是你想要的,但有时一个进程是由它自己的用户运行的,比如apache2通常由用户www-data运行。

您可以使用它将top的输出限制为仅该用户的进程,实际上只使用此命令显示apache2进程:

top -u www-data

6
2017-12-23 22:48



大!我想知道如何列出用户特定的进程 - razor7


试试这个:

alias mytop='echo $(sed "s/\([0-9]*\)/-p \1/g;s/^/top /" <(pgrep -d" " "java|redis|mysql|mongo"))'
mytop

4
2017-12-23 22:35





校验 男人顶部 手册页有关顶级实用程序的详细信息...

Semms你需要-p参数

-p:将PID监视为: -pN1 -pN2 ......  要么 -pN1,N2 [,...]

        Monitor only processes with specified process  IDs.   This  option
        can  be given up to 20 times, or you can provide a comma delimited
        list  with  up  to  20  pids.   Co-mingling  both  approaches   is
        permitted.

3