找到这个过程的孩子

Modified on: Sat, 09 Jun 2018 10:03:53 +0800

有什么方法可以知道,谁是具体过程的孩子?例如那些父母ID是foo的孩子?

最佳答案

您正在寻找pstree命令。
pstree本身将以树形式列出所有进程(如lsblk那样)。您可以使用-p标志来获取列出的PID,并使用-s来显示父进程:

$ pstree -p 602
udisksd(602)-+-{cleanup}(607)
             |-{gdbus}(605)
             |-{gmain}(603)
             `-{probing-thread}(606)


一种(可能)POSIX兼容的获取子PID的方式(我在其他地方的评论中提到过):

ps -o ppid= -o pid= -A | awk '$1 == <some pid>{print $2}'

这告诉ps写入所有进程的父PID和PID(没有标题),然后使用awk查看哪些行在第一个字段(父PID)中具有给定的PID,并打印相应的第二个字段(子PID)。

作者:,muru

相关问答

添加新评论