使用 ps 命令显示进程树,主要有以下几种方法。
方法一:使用 --forest 选项 (最推荐)
这是最直观、可读性最强的方法。--forest 选项会强制 ps 以 ASCII 字符画出树状结构,清晰地展示进程间的父子关系。
常用命令:
ps -ef --forest
-e:显示所有进程。-f:显示完整格式的进程信息。
其他变体:
- 显示更详细的信息(如CPU、内存占用):
ps aux --foresta:显示所有终端的进程。u:以用户为主的格式输出。x:显示没有控制终端的进程。
- 只查看特定进程(如
systemd)的树状结构:ps -ef --forest | grep systemd
方法二:使用 -H 选项
-H 选项可以显示进程的层次结构,效果类似于树状图,但通常不如 --forest 直观。
ps -efH
方法三:使用 BSD 风格的 axjf 选项
这是另一种常见的显示进程树的方式,结合了 BSD 和 Unix 风格的选项。
ps axjf
a:显示所有终端的进程。x:显示没有控制终端的进程。j:以“作业格式”输出,包含进程组ID等信息。f:显示进程间的层级关系。
方法四:自定义显示格式
如果你需要更精确地控制输出内容,可以使用 -o 选项自定义显示字段,并结合 --forest 选项。
ps -eo pid,ppid,cmd --forest
-e:显示所有进程。-o:自定义输出格式。pid,ppid,cmd:指定只显示进程ID、父进程ID和命令名。
补充:pstree 命令
除了 ps,Linux 系统还有一个专门用于显示进程树的命令 pstree,它输出的树状结构更加纯粹和美观。
pstree
- 显示进程 ID:
pstree -p - 显示特定用户(如
root)的进程树:pstree root
总结:日常使用中,ps -ef --forest 是最佳选择,兼顾了信息完整性和可读性。如果只关心进程树的结构,pstree 命令则更为简洁。