说明
pstree命令以树形结构显示进程与进程之间的关系
格式
pstree [option] [pid/user]
如果不指定进程的PID号,或者不指定用户名称,则会以init进程为根进程,显示系统的所有进程信息,若指定用户或PID,则将以用户或PID为根进程,显示用户或PID对应的所有进程
常用参数说明
- -a:显示启动每个进程对应的完整指令,包含启动进程的路径、参数等
- -c:不精简显示进程信息,即显示的进程中包含子进程和父进程
- -h:对现在执行的程序进行特别标注
- -n:根据进程的pid号来排序输出,默认是以程序名称排序输出的
- -p:显示进程的PID
- -u:显示进程对应的用户名称
示例
1、不加参数
[root@localhost ~]# pstree
systemd─┬─NetworkManager───3*[{NetworkManager}]
├─agetty
├─auditd───{auditd}
├─avahi-daemon───avahi-daemon
├─crond
├─dbus-daemon───{dbus-daemon}
├─iprdump
├─iprinit
├─iprupdate
├─lvmetad
├─mongod───22*[{mongod}]
├─mysqld_safe───mysqld───20*[{mysqld}]
├─nginx───nginx
├─php-fpm───2*[php-fpm]
├─polkitd───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd─┬─sshd───bash
│ └─sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
└─tuned───4*[{tuned}]
2、显示指定用户进程
[root@localhost ~]# pstree mysql #指定mysql用户
mysqld───20*[{mysqld}] #mysqld拥有的进程数量为20个
[root@localhost ~]# pstree -c -p mysql #显示所有进程,并包含进程号
mysqld(1793)─┬─{mysqld}(2184)
├─{mysqld}(2185)
├─{mysqld}(2186)
├─{mysqld}(2187)
├─{mysqld}(2188)
├─{mysqld}(2189)
├─{mysqld}(2190)
├─{mysqld}(2191)
├─{mysqld}(2192)
├─{mysqld}(2193)
├─{mysqld}(2197)
├─{mysqld}(2198)
├─{mysqld}(2199)
├─{mysqld}(2200)
├─{mysqld}(2201)
├─{mysqld}(2202)
├─{mysqld}(2203)
├─{mysqld}(2204)
├─{mysqld}(2205)
└─{mysqld}(2208)
3、显示进程所属的用户
[root@localhost ~]# pstree -u
systemd─┬─NetworkManager───3*[{NetworkManager}]
├─agetty
├─auditd───{auditd}
├─avahi-daemon(avahi)───avahi-daemon
├─crond
├─dbus-daemon(dbus)───{dbus-daemon}
├─iprdump
├─iprinit
├─iprupdate
├─lvmetad
├─mongod───22*[{mongod}]
├─mysqld_safe───mysqld(mysql)───20*[{mysqld}]
├─nginx───nginx(nginx)
├─php-fpm───2*[php-fpm(nginx)]
├─polkitd(polkitd)───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd─┬─sshd───bash
│ └─sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
└─tuned───4*[{tuned}]