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
………………省略部分输出信息………………