如果我杀脚本运行脚本运行java?

时间:2012-03-27 13:09:22

标签: linux process kill spawn

如果我优雅地杀死(没有-9)一个运行另一个脚本的脚本,它依次运行java,java进程会通过级联接收kill信号吗?

1 个答案:

答案 0 :(得分: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脚本等待$!