シェル スクリプトからバックグラウンド プロセスを開始し、スクリプトが終了したらこのプロセスを終了したいと思います。
シェル スクリプトからこのプロセスの PID を取得するにはどうすればよいでしょうか。私が確認した限りでは、変数には$!
バックグラウンド プロセスではなく、現在のスクリプトの PID が含まれています。
ベストアンサー1
バックグラウンド プロセスを起動するときに、その PID を保存する必要があります。
foo &
FOO_PID=$!
# do other stuff
kill $FOO_PID
ジョブ制御は対話型機能であり、制御端末に関連付けられているため、使用できません。スクリプトには必ずしも端末が接続されているとは限らないため、ジョブ制御が必ずしも利用できるとは限りません。