Linux命令完全指南

Linux pstree命令使用详解

pstree命令 以树状图的方式展现进程之间的派生关系,显示效果比较直观。
树状图将会以 pid (如果有指定)或是以 init 这个基本行程为根 (root),如果有指定使用者id,则树状图会只显示该使用者所拥有的行程。

语法

1
2
pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
pstree -V

选项

1
2
3
4
5
6
7
8
9
10
11
-a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示;
-c:不使用精简标示法;
-G:使用VT100终端机的列绘图字符;
-h:列出树状图时,特别标明现在执行的程序;
-H<程序识别码>:此参数的效果和指定"-h"参数类似,但特别标明指定的程序;
-l:采用长列格式显示树状图;
-n:用程序识别码排序。预设是以程序名称来排序;
-p:显示程序识别码;
-u:显示用户名称;
-U:使用UTF-8列绘图字符;
-V:显示版本信息。

实例

显示当前所有进程的进程号和进程id

1
pstree -p

显示所有进程的所有详细信息,遇到相同的进程名可以压缩显示。

1
pstree  -a

获取 SSH 会话的 PID

1
2
3
4
pstree -p | grep ssh

# |-sshd(1221)-+-sshd(2768)---bash(2770)-+-grep(2810)
# | `-sshd(2807)---sshd(2808)

从上方的输出中,你可以看到 sshd 进程与分支的树形图。sshd 的主进程是 sshd(1221),另两个分支分别为 sshd(2768) 和 sshd(2807)。