pstree命令来自英文词组“display a tree of processes”的缩写,其功能是用于以树状图形式显示进程信息,帮助管理员更好地了解进程间的关系。Linux系统中常用ps命令查看进程状态信息,但是却无法了解进程之间的依赖关系,哪个是父进程,哪个是子进程?这些信息则可通过pstree命令进行查看。

语法格式: pstree [参数]

常用参数:

-a 显示完整信息
-A使用ASCII字符绘制树
-c 不使用精简标示法
-g显示进程组ID
-G使用VT100终端机的列绘图字符
-h特别标明现在执行的程序
-I使用长格式显示树状图
-n依据PID排序上下级进程
-s显示指定进程的父进程
-S显示命名空间转换
-p显示进程号码
-u显示用户名
-U使用UTF-8线条绘制字符
-V显示版本信息
-Z显示每个进程的安全上下文

参考示例

以树状图的形式显示当前系统中全部进程(默认):

[root@linuxcool ~]# pstree
systemd-+-ModemManager---2*[{ModemManager}]
        |-NetworkManager---2*[{NetworkManager}]
        |-VGAuthService
        |-accounts-daemon---2*[{accounts-daemon}]
        |-atd
        |-auditd-+-sedispatch
        |        `-2*[{auditd}]
………………省略部分输出信息………………

以树状图的形式显示当前系统中全部进程(带有进程号):

[root@linuxcool ~]# pstree -p
systemd(1)-+-ModemManager(989)-+-{ModemManager}(1003)
           |                   `-{ModemManager}(1010)
           |-NetworkManager(1082)-+-{NetworkManager}(1091)
           |                      `-{NetworkManager}(1095)
           |-VGAuthService(984)
           |-accounts-daemon(1047)-+-{accounts-daemon}(1049)
           |                       `-{accounts-daemon}(1051)
………………省略部分输出信息………………

以更完整、更丰富的信息样式显示每个进程:

[root@linuxcool ~]# pstree -a
systemd --switched-root --system --deserialize 17
  ├─ModemManager
  │   └─2*[{ModemManager}]
  ├─NetworkManager --no-daemon
  │   └─2*[{NetworkManager}]
  ├─VGAuthService -s
  ├─accounts-daemon
  │   └─2*[{accounts-daemon}]
  ├─atd -f
………………省略部分输出信息………………
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。