私は何時間も次のことをしようとしました(Centos 6で)。
- cron はプロセス A を起動します。
- プロセスAは、プロセスBがまだ生きていることを確認する。
- プロセスBが存在しない場合、プロセスAはプロセスBを開始する。
問題は、プロセスAが終了した後にプロセスBも終了することです。
プロセスAとプロセスBの両方がbashスクリプトを実行します。
bin/bash script.sh &
私は使用しようとしましたが、exec bin/bash script.sh
成功しませんでした。コンソールでプロセスAを起動すると、プロセスBは終了しません。
私がやろうとしているのは理論的には可能です(例えば、cron実行プロセスでプロセスを起動し、それを維持するようにすること)。プロセスAが終了した後もプロセスBが維持されるようにプロセスBを開始する他の方法は何ですか?
ベストアンサー1
scriptForA.sh内部で使用されますnohup scriptForB.sh
。これにより、親プロセスが終了したときに子プロセスが終了しなくなります。
終了すると、親プロセスはSIGTERM
すべての子プロセスにシグナルを送信します。を使用すると、nohup
子プロセスはシグナルSIGTERM
を無視します。