➥ 当使用top
实用程序查看进程及其活动时,如何按名称将列表过滤为子集?
例如,当我只想查看名称包含postgres
或 的进程时java
。
我使用的是 FreeBSD 11.2,但如果行为有所不同,跨 Unix 风格的指导将会很有帮助。
我读过有关使用这个的信息:
top -p $(pgrep -d',' postgres)
…但我收到一个错误:
非法变量名。
答案1
top
提供的变体自由BSD核心系统不具有该-p
选项用于选择要以伪实时方式观看的 pid 列表。
不过,该htop
软件包可以安装在您的系统之上自由BSD系统和这个更丰富多彩的顶部(除其他外)变体有这个想要的-p
选项。
htop
帮助:
从htop
使用情况来看:
htop 2.2.0 - (C) 2004-2018 Hisham Muhammad
Released under the GNU GPL.
-C --no-color Use a monochrome color scheme
-d --delay=DELAY Set the delay between updates, in tenths of seconds
-h --help Print this help screen
-s --sort-key=COLUMN Sort by COLUMN (try --sort-key=help for a list)
-t --tree Show the tree view by default
-u --user=USERNAME Show only processes of a given user
-p --pid=PID,[,PID,PID...] Show only the given PIDs
-v --version Print version info
- 安装
htop
使用自由BSD存储库:
# pkg install htop
或通过端口:
# cd /usr/ports/sysutils/htop
# make install clean
答案2
Top 旨在显示顶层流程,因此而得名。不过,有一些解决方法可能会对您有所帮助。
您可以通过管道将输出发送到 grep:
top | grep postgres
您可以尝试使用-o
带有字段名称的标志。
top -o pid
您可以将其与-i
标志结合起来,这将带您进入交互模式
top -io pid
到达那里后,您可以切换各种选项,例如a
流程标题或u
用户。
尝试结合各种选项。
参考
man top
Freebsd 11.2 发布