【发布时间】:2012-06-16 05:43:37
【问题描述】:
我有一个启动两个 java 进程的 shell 脚本。如何确保当 shell script 进程被杀死时,它的所有子进程也会被杀死?例如,当我试图杀死它时,java 进程仍然活着:
kill -9 myscriptID
【问题讨论】:
-
我希望
myscript在这里引用它的进程ID。
我有一个启动两个 java 进程的 shell 脚本。如何确保当 shell script 进程被杀死时,它的所有子进程也会被杀死?例如,当我试图杀死它时,java 进程仍然活着:
kill -9 myscriptID
【问题讨论】:
myscript在这里引用它的进程ID。
【讨论】:
您的kill 命令只会杀死您的脚本,不会杀死它产生的其他进程。 Best way to kill all child processes 有一些杀死整棵树的好答案。
也就是说,似乎更好的设计是跟踪子进程的 PID,而不是发送父进程SIGKILL,而是发送它SIGTERM(或其他方式)来触发它优雅地杀死它的孩子。
【讨论】: