1

Javaを実行している別のスクリプトを実行しているスクリプトを正常に(なしで-9)強制終了すると、Javaプロセスはカスケードによって強制終了信号を受け取りますか?

4

1 に答える 1

1

この場合、Java が適切にシャットダウンされず、init (pid 1) によって所有されることがわかりました。私は過去に、起動後に Java プロセスの pid を記録し、bash スクリプト内のシグナル ハンドラで kill -15 を送信することで、これを修正しました。

jpid=

trap_intr()
{
   [ ! -z "$jpid" ] && kill $jpid
}

trap trap_intr INT TERM

java -cp ... foo &
jpid=$!
wait

更新: Java プロセスをバックグラウンドに置くのを忘れて、bash スクリプトを $! で待機させました。

于 2012-03-27T13:30:33.763 に答える