有没有办法找到程序的孩子的PID

  • 本文关键字:孩子 PID 程序 有没有 bash
  • 更新时间 :
  • 英文 :


有没有办法找到程序子项的pid?

例如,我正在使用系统程序启动pppoe连接:

pon dsl-provider

程序将在建立连接后退出,并生成连接所需的pppd

ps wx | grep pppd
  882 ?        S      0:01 /usr/sbin/pppd call dsl-provider

问题是(直到现在我一直这样做)我不想在 ps 列表中 grep,我想要一个确切的答案,而且在许多情况下我需要这个(以上只是一个例子)。我该怎么做?

尝试使用 -p 选项pstree,以显示进程的进程树及其附加了 pid 的子进程:

$ pstree -p `pgrep pppd`
你可以

试试这个

# somehow get the PID of the parent (882 in your case)
PID=`ps wx | grep pppd | awk '{ print $1; }'`
# formatted output (includes the parent)
ps ax --format pid,ppid,command | grep $PID | grep -v grep

我会使用ps --ppid ORIGINAL_PROGRAMS_PID尽管如果原始程序退出,它可能无法正常工作。

最新更新