13

次のシナリオがあります。

ユーザーがプロセスの PID を入力すると、スクリプトはプロセスとそのサブプロセス、PID のサブサブプロセス (など) を表示し、ツリー形式でリストする必要があります。

と を使ってみpstree PIDましps faux PIDたが、うまくいきません。プロセスの PID を引数としてとらないようです。

アイデアはありますか?

4

3 に答える 3

2

これはpsawkのみを使用した bash スクリプトです。プロセス ツリーを生成するためのベースとして at を使用できます。

ppid=$1
while true
do 
    forloop=FALSE
    # get all children by pid 
    for i in `ps -ef | awk '$3 == '$ppid' {print $2}'`
    do 
       # Here you have one of of the elements of tree 
       #   parent -> child
       echo $ppid - $i 
       forloop=TRUE
    done
    ppid=$i

    if [ "$forloop" = "FALSE" ]; then
       exit
    fi
 done
于 2011-03-06T23:17:02.183 に答える
1

最初のステップは、ps を awk と grep にパイプすることです。awk を使用すると、「このプロセス PID」フィールドまたは「親プロセス PID」フィールドのいずれかを分離できます。

または、/proc ファイル システムを調べてみてください。

于 2011-03-06T22:44:29.423 に答える