1

如果我优雅地(不-9)杀死一个正在运行另一个脚本的脚本,该脚本又在运行java,java进程会通过级联接收kill信号吗?

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 回答