pstree
如果要找程序之间的相关性,这个 pstree 真是好用到不行!直接输入 pstree 可以查到程序相关性,如上表所示,还会使用线段将相关性程序连结起来哩! 一般连结符号可以使用 ASCII 码即可,但有时因为语系问题会主动的以 Unicode 的符号来连结, 但因为可能终端机无法支援该编码,或许会造成乱码问题。因此可以加上 -A 选项来克服此类线段乱码问题。
由 pstree 的输出我们也可以很清楚的知道,所有的程序都是依附在 init 这支程序底下的! 仔细看一下,这支程序的 PID 是一号喔!因为他是由 Linux 核心所主动呼叫的第一支程式!所以 PID 就是一号了。 这也是我们刚刚提到僵尸程序时有提到,为啥发生僵尸程序需要重新开机? 因为 init 要重新启动,而重新启动 init 就是 reboot 啰!
如果还想要知道 PID 与所属使用者,加上 -u 及 -p 两个参数即可。我们前面不是一直提到, 如果子程序挂点或者是老是砍不掉子程序时,该如何找到父程序吗?呵呵!用这个 pstree 就对了!
[root@www ~]#pstree [-A|U] [-up] 选项与参数: -A :各程序树之间的连接以 ASCII 字元来连接; -U :各程序树之间的连接以万国码的字元来连接。在某些终端介面下可能会有错误; -p :并同时列出每个 process 的 PID; -u :并同时列出每个 process 的所属帐号名称。 范例一:列出目前系统上面所有的程序树的相关性: [root@www ~]#pstree -A init-+-acpid |-atd |-auditd-+-audispd---{audispd} <==这行与底下一行为 auditd 分出来的子程序 | `-{auditd} |-automount---4*[{automount}] <==预设情况下,相似的程序会以数字显示 ....(中间省略).... |-sshd---sshd---bash---pstree <==就是我们指令执行的那个相依性! ....(底下省略).... # 注意一下,为了节省版面,所以鸟哥已经删去很多程序了! 范例二:承上题,同时秀出 PID 与 users [root@www ~]# pstree -Aup init(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 的输出我们也可以很清楚的知道,所有的程序都是依附在 init 这支程序底下的! 仔细看一下,这支程序的 PID 是一号喔!因为他是由 Linux 核心所主动呼叫的第一支程式!所以 PID 就是一号了。 这也是我们刚刚提到僵尸程序时有提到,为啥发生僵尸程序需要重新开机? 因为 init 要重新启动,而重新启动 init 就是 reboot 啰!
如果还想要知道 PID 与所属使用者,加上 -u 及 -p 两个参数即可。我们前面不是一直提到, 如果子程序挂点或者是老是砍不掉子程序时,该如何找到父程序吗?呵呵!用这个 pstree 就对了!