pstree 用于查看 进程 间 的 父子 关系
在linux系统中,系统调用fork 可以创建子进程,通过子 shell 也可以创建子进程,liunx 系统中进程之间的关系天生就是一棵树,
centos 7 树的根就是 pid为1 的 systemd 进程
pstree 查看进程树:
[root@localhost ~]# pstree
systemd─┬─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─chronyd
├─crond
├─dbus-daemon
├─irqbalance
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}
pstree -p 查看进程树,并打印每个进程的PID
[root@localhost ~]# pstree -p
systemd(1)─┬─NetworkManager(667)─┬─dhclient(9191)
│ ├─{NetworkManager}(701)
│ └─{NetworkManager}(704)
├─VGAuthService(671)
├─agetty(682)
├─auditd(638)───{auditd}(639)
├─chronyd(685)
├─crond(677)
├─dbus-daemon(663)
├─irqbalance(668)
├─lvmetad(505)
├─master(1139)─┬─pickup(9321)
│ └─qmgr(1141)
├─polkitd(673)─┬─{polkitd}(696)
│ ├─{polkitd}(699)
│ ├─{polkitd}(700)
│ ├─{polkitd}(702)
│ └─{polkitd}(705)
├─rsyslogd(949)─┬─{rsyslogd}(981)
│ └─{rsyslogd}(982)
├─sshd(947)───sshd(1098)───bash(1192)───pstree(9323)
├─systemd-journal(478)
├─systemd-logind(675)
├─systemd-udevd(512)
├─tuned(946)─┬─{tuned}(1361)
│ ├─{tuned}(1362)
│ ├─{tuned}(1363)
│ └─{tuned}(1376)
└─vmtoolsd(672)───{vmtoolsd}(712)
pstree -p <pid> 查看某个进程 树形 结构
[root@localhost ~]# pstree -p 9327
kworker/1:2(9327)
[root@localhost ~]# pstree -p 9321
pickup(9321)
参考资料