1
如果我優雅地殺死(沒有),運行另一個腳本的腳本依次運行java,java會通過級聯方式接收kill信號?如果我殺死運行java的腳本運行腳本?
如果我優雅地殺死(沒有),運行另一個腳本的腳本依次運行java,java會通過級聯方式接收kill信號?如果我殺死運行java的腳本運行腳本?
我看到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腳本等待$!