バックグラウンドプロセスのプロセスIDを取得するにはどうすればいいですか? 質問する

バックグラウンドプロセスのプロセスIDを取得するにはどうすればいいですか? 質問する

シェル スクリプトからバックグラウンド プロセスを開始し、スクリプトが終了したらこのプロセスを終了したいと思います。

シェル スクリプトからこのプロセスの PID を取得するにはどうすればよいでしょうか。私が確認した限りでは、変数には$!バックグラウンド プロセスではなく、現在のスクリプトの PID が含まれています。

ベストアンサー1

バックグラウンド プロセスを起動するときに、その PID を保存する必要があります。

foo &
FOO_PID=$!
# do other stuff
kill $FOO_PID

ジョブ制御は対話型機能であり、制御端末に関連付けられているため、使用できません。スクリプトには必ずしも端末が接続されているとは限らないため、ジョブ制御が必ずしも利用できるとは限りません。

おすすめ記事