私はこれを使用してスクリプトのPIDを見つけることができることを知っていますが、pgrep -fl example.sh
次の場合はexample.sh
機能しません。example.sh
(while true; do
sleep 5
done) &
./example.sh
その後、実行するとpgrep -fl example.sh
入力は返されません。example.sh
睡眠中にPIDをどのように見つけますか?
答え1
example.sh
スクリプトがすぐに終了することに気づきます。これはsleep
コマンドが経由してバックグラウンドに送信されるためです&
。
sleep
スクリプトは、次のコマンドを順番に実行する前に完了するまで待機しません。
sleep
この場合、期待どおりに動作しません(遅延)。
sleep
バックグラウンドで実行する理由はまったくありません。
メモ: pgrep -fl processname
PIDだけでなくプロセス名も出力されます。
-f, --full
The pattern is normally only matched against the process name. When -f is set, the full command line is used.
-l, --list-name
List the process name as well as the process ID. (pgrep only.)