有没有办法找到节目中孩子的pid?
例如,我正在使用系统程序启动pppoe
连接:
pon dsl-provider
程序将在建立连接后退出,并将产生连接所需的pppd
:
ps wx | grep pppd
882 ? S 0:01 /usr/sbin/pppd call dsl-provider
事情是(直到现在我这样做)我不想在ps列表中grep,我想要一个确切的答案,我需要在许多情况下(以上只是一个例子)。我怎么能这样做?
答案 0 :(得分:1)
使用pstree
选项试试-p
,以显示流程的流程树及其附加了pids的子项:
$ pstree -p `pgrep pppd`
答案 1 :(得分:0)
你可以试试这个
# 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
答案 2 :(得分:0)
我使用ps --ppid ORIGINAL_PROGRAMS_PID
虽然如果退出原始程序可能无效。