Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我优雅地(不-9)杀死一个正在运行另一个脚本的脚本,该脚本又在运行java,java进程会通过级联接收kill信号吗?
-9
在这种情况下,我看到 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脚本等待$!