時間ごとにプロセス開始のPIDを取得します。

時間ごとにプロセス開始のPIDを取得します。

私が実行すると仮定すると、time ./a.out変数を介してPIDを取得できます。ところで、PIDはどのように取得しますか?time$!a.out

もちろん、出力を解析することはできますが、psよりエレガントなソリューションが必要です。

確認しましたが、man time何も見つかりませんでした。

私が得た最も近いものでしたが、time (sleep 10 & echo $!)四半期のために費やされた時間は基本的に10秒ではなくゼロでした。

ベストアンサー1

定義によると、a.outこれは子プロセスですtimetime親プロセスのpidも同様ですa.out!以下は私がa.out置き換えるテストですsleep 60

$ time sleep 50 & timepid=$!
$ aoutpid=$(pgrep -P $timepid)
$ ps -o ppid,pid,start,cmd w -p $$,$timepid,$aoutpid

PPID   PID  STARTED CMD
2065  2068 21:34:57 -bash
2068  3297 22:16:05 -bash
3297  3298 22:16:05 sleep 50

(注:はtime実際にシェル組み込みコマンドなので、上記のコマンドはbash!)

おすすめ記事