バックグラウンドタスクが完了したかどうかはどうすればわかりますか?

バックグラウンドタスクが完了したかどうかはどうすればわかりますか?

以下のように、別のスクリプト(do_manythings)を介してバックグラウンドでスクリプト(do_something)を呼び出しています。

nohup do_something &

呼び出された操作(do_something)が完了したことを親スクリプト(do_manythings)でどのように知ることができますか?

ベストアンサー1

バックグラウンドジョブを開始し、他のアクションを実行してから停止し、バックグラウンドジョブが完了するのを待つには、次のようにします。

いいえdo_something&
PID=$!
...もっとたくさん...
$ pidを待ってください

または、次のようにジョブが終了したかどうかをテストできます。

いいえdo_something&
PID=$!
...もっとたくさん...
ps -p $pid > /dev/null
[$? == 1]&&echo "すべて消えました!"

おすすめ記事