Linux程序树 : pstree

来源:互联网 发布:淘宝视觉设计 编辑:程序博客网 时间:2024/05/21 17:49
转:http://blog.chinaunix.net/space.php?uid=23054351&do=blog&id=2560359
 


pstree
[root@www ~]#pstree [-A|U] [-up]选项与参数:-A  :各程序树之间的连接以 ASCII 字元来连接;-U  :各程序树之间的连接以万国码的字元来连接。在某些终端介面下可能会有错误;-p  :并同时列出每个 process 的 PID;-u  :并同时列出每个 process 的所属帐号名称。范例一:列出目前系统上面所有的程序树的相关性:[root@www ~]#pstree -Ainit-+-acpid     |-atd     |-auditd-+-audispd---{audispd}  <==这行与底下一行为 auditd 分出来的子程序     |        `-{auditd}     |-automount---4*[{automount}]   <==预设情况下,相似的程序会以数字显示....(中间省略)....     |-sshd---sshd---bash---pstree   <==就是我们指令执行的那个相依性!....(底下省略)....# 注意一下,为了节省版面,所以鸟哥已经删去很多程序了!范例二:承上题,同时秀出 PID 与 users [root@www ~]# pstree -Aupinit(1)-+-acpid(4555)        |-atd(18593)        |-auditd(4256)-+-audispd(4258)---{audispd}(4261)        |              `-{auditd}(4257)        |-automount(4536)-+-{automount}(4537) <==程序相似但 PID 不同!        |                 |-{automount}(4538)        |                 |-{automount}(4541)        |                 `-{automount}(4544)....(中间省略)....        |-sshd(4586)---sshd(16903)---bash(16905)---pstree(16967)....(中间省略)....        |-xfs(4692,xfs)   <==因为此程序拥有者并非执行 pstree 者!所以列出帐号....(底下省略)....# 在括号 () 内的即是 PID 以及该程序的 owner 喔!不过,由于我是使用 # root 的身份执行此一指令,所以属于 root 的程序就不会显示出来啦!
如果要找程序之间的相关性,这个 pstree 真是好用到不行!直接输入 pstree 可以查到程序相关性,如上表所示,还会使用线段将相关性程序连结起来哩! 一般连结符号可以使用 ASCII 码即可,但有时因为语系问题会主动的以 Unicode 的符号来连结, 但因为可能终端机无法支援该编码,或许会造成乱码问题。因此可以加上 -A 选项来克服此类线段乱码问题。

由 pstree 的输出我们也可以很清楚的知道,所有的程序都是依附在 init 这支程序底下的! 仔细看一下,这支程序的 PID 是一号喔!因为他是由 Linux 核心所主动呼叫的第一支程式!所以 PID 就是一号了。 这也是我们刚刚提到僵尸程序时有提到,为啥发生僵尸程序需要重新开机? 因为 init 要重新启动,而重新启动 init 就是 reboot 啰!

如果还想要知道 PID 与所属使用者,加上 -u 及 -p 两个参数即可。我们前面不是一直提到, 如果子程序挂点或者是老是砍不掉子程序时,该如何找到父程序吗?呵呵!用这个 pstree 就对了!