0

プログラムの子のpidを見つける方法はありますか?

たとえば、pppoeシステム プログラムを使用して接続を開始しています。

pon dsl-provider

プログラムは接続を確立した後に終了し、pppd接続に必要なを生成します。

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

事は (私は今までそうしていました) ps リストで grep したくない、正確な答えが欲しい、そして多くの状況でこれが必要です (上記は単なる例です)。どうやってやるの?

4

3 に答える 3

1

プロセスのプロセス ツリーと、pid が追加されたその子プロセスを表示するオプションをpstree試してください。-p

$ pstree -p `pgrep pppd`
于 2012-05-24T13:04:37.257 に答える
0

ps --ppid ORIGINAL_PROGRAMS_PID元のプログラムが終了すると機能しない可能性がありますが、使用します。

于 2012-05-24T12:43:14.957 に答える
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
于 2012-05-24T12:38:21.123 に答える