有时我会寻找 AIX 的同等产品proctree
命令
显示所有孩子和所有的祖先指定 PID 的值,有时对于故障排除非常有用。作为示例,这里是手册页的摘录:
To display the ancestors and children of process 12312,
including children of process 0, enter:
proctree -a 12312
The output of this command might look like this:
1 /etc/init
4954 /usr/sbin/srcmstr
7224 /usr/sbin/inetd
5958 telnetd -a
13212 -sh
14724 ./proctree -a 13212
我有时使用的另一种有用的形式是,proctree $$
它还会显示我当前的终端,以及我是通过 ssh 还是通过控制台登录。
为了澄清起见,我不是在寻找脚本它在 Linux 上模拟了这一点,但实际的等效项可能已经存在。
在 Linux 上,pstree
显示指定 PID 的所有子进程,但根始终是指定的 PID(如果未指定 PID,则为 init,并且将显示完整的树)。
类似的东西ps --forest -u "$username"
也没有帮助,因为它只显示给定用户的进程,并且显示所有进程 - 不仅仅是给定树的进程。
答案1
我认为pstree -s 12312
即使格式不那么好,也可以提供您想要的内容。
答案2
重新发布我的评论作为更好格式的答案。
哦,天哪,看来我完全错过了手册页中的内容。
pstree -pas PID
还将显示父进程,格式为树并包含进程的 PID。
一个例子:
[doktor5000@Mageia5]─[20:06:48]─[~] pstree -pas $$
systemd,1
└─konsole,9515
└─bash,9517
└─pstree,9595 -pas 9517
[doktor5000@Mageia5]─[20:06:49]─[~]