2012-03-27 133 views

回答

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腳本等待$!