用于列出给定进程的所有后代的所有PID的命令

时间:2014-06-03 22:01:26

标签: linux process

在任何Linux发行版中,是否可以使用pspgrep或其他标准命令来获取给定PID的当前运行的后代进程的所有PID?

2 个答案:

答案 0 :(得分:0)

您可以使用pstree命令:

pstree -a "$PID"

答案 1 :(得分:0)

ppid = 12345的一个班轮:

/bin/ps -e -o pid,ppid | awk -v myppid=12345 '{if ($2 == myppid) { print $1; }}'

或脚本:

#!/bin/sh

if [ "$#" -eq 0 ] ; then
    echo "Usage: $0 <ppid>" 1>&2
    exit 1
fi
myppid="$1"
exec /bin/ps -e -o pid,ppid | awk -v myppid="$myppid" '{if ($2 == myppid) { print $1; }}'