在Unix中显示进程树

在层次结构列表中显示进程对于确认系统上运行的每个进程之间的关系非常有用。今天,我想向您展示如何使用各种命令获取类似树的进程列表。

ptree显示进程树

在Solaris中,有许多命令可以简化任何系统管理员的工作,它们是process命令(p命令)。我特别喜欢的其中一个是ptree命令,它向您显示进程列表。

运行命令时,将获得Solaris系统上运行的所有进程的层次结构列表,以及进程ID(PID)。对我来说,这是一个非常有用的命令,因为它向您展示了每个进程与系统中其他进程之间的确切关联。

这是ptree输出的一部分:

bash-3.00$ ptree

7     /lib/svc/bin/svc.startd

  250   /usr/lib/saf/sac -t 300

    268   /usr/lib/saf/ttymon

  260   -sh

    5026  -csh

9     /lib/svc/bin/svc.configd

107   /usr/lib/sysevent/syseventd

136   /usr/lib/picl/picld

140   /usr/lib/crypto/kcfd

159   /usr/sbin/nscd

227   /usr/sbin/rpcbind

234   /usr/lib/nfs/statd

235   /usr/sbin/keyserv

236   /usr/lib/netsvc/yp/ypserv -d

  237   rpc.nisd_resolv -F -C 8 -p 1073741824 -t udp

241   /usr/lib/nfs/lockd

247   /usr/lib/netsvc/yp/ypbind

263   /usr/lib/utmpd

286   /usr/sadm/lib/smc/bin/smcboot

  287   /usr/sadm/lib/smc/bin/smcboot

  288   /usr/sadm/lib/smc/bin/smcboot

pstree处理树

在大多数Linux发行版中,您可以找到pstree命令,与ptree非常相似。

这就是您可以使用它的方式(-p是显示PID的选项,-l使用长输出格式):

ubuntu$ pstree -pl

init(1)─┬─NetworkManager(5427)

        ├─NetworkManagerD(5441)

        ├─acpid(5210)

        ├─apache2(6966)─┬─apache2(2890)

        │               ├─apache2(2893)

        │               ├─apache2(7163)

        │               ├─apache2(7165)

        │               ├─apache2(7166)

        │               ├─apache2(7167)

        │               └─apache2(7168)

        ├─atd(6369)

        ├─avahi-daemon(5658)───avahi-daemon(5659)

        ├─bonobo-activati(7816)───{bonobo-activati}(7817)

...

ps显示进程树–forest

在Linux中找到的ps命令具有–forest选项,该选项向您显示进程的树结构。

根据我的经验,最好的方法是像这样使用它:

ubuntu$ ps -aef --forest

UID        PID  PPID  C STIME TTY          TIME CMD

...

107       5473     1  0 10037  4600   0 Apr28 ?        00:00:02 /usr/sbin/hald

root      5538  5473  0  5511  1288   0 Apr28 ?        00:00:00  \_ hald-runner

root      5551  5538  0  6038  1284   0 Apr28 ?        00:00:01      \_ hald-addon-input: Listening on /dev/input

107       5566  5538  0  4167   992   1 Apr28 ?        00:00:00      \_ hald-addon-acpi: listening on acpid socke

root      5600  5538  0  6038  1272   1 Apr28 ?        00:00:15      \_ hald-addon-storage: polling /dev/scd0 (ev

root      5476     1  0 10272  2532   0 Apr28 ?        00:00:00 /usr/sbin/console-kit-daemon

root      5627     1  0 12728  1176   1 Apr28 ?        00:00:00 /usr/sbin/sshd

root      9151  5627  0 17536  3032   0 10:53 ?        00:00:00  \_ sshd: greys [priv]

greys     9162  9151  0 17538  1892   1 10:54 ?        00:00:00      \_ sshd: greys@pts/3

greys     9168  9162  0  5231  3820   1 10:54 pts/3    00:00:00          \_ -bash

greys     9584  9168  0  3802  1124   0 11:27 pts/3    00:00:00              \_ ps -aeF --forest

此输出仅用于演示目的,因此,我删除了输出的第一行,因为它们不能很好地满足本示例的目的。

对于输出的稀薄片段,您可以查看如何获取有关每个过程的所有重要信息。我真的很喜欢这种运行ps命令的方式。

今天就这样!您知道查看流程树的任何其他巧妙方法吗?让我知道!

 

猜你喜欢

转载自blog.csdn.net/allway2/article/details/108885598