linux 相当于 AIX proctree 命令,显示给定 PID 的所有子进程和父进程

linux 相当于 AIX proctree 命令,显示给定 PID 的所有子进程和父进程

有时我会寻找 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]─[~]

相关内容