如何从pid文件中杀死时杀死子进程

时间:2013-11-01 15:51:20

标签: macos bash shell scripting

kill -9 `cat ~/code/posbox/posbox.pid` 

我正在运行上面的命令以终止进程。 pid在文件中,它正确地终止进程,但子进程仍在运行

当我做的时候

kill <PID number> 

它会与所有子进程一起杀死进程。如何从pid文件中给出的pid中删除所有父进程和子进程?

1 个答案:

答案 0 :(得分:3)

由于kill <PID number>有效,只需使用:

# By default, send SIGTERM, not SIGKILL (9)
kill $(cat ~/code/posbox/posbox.pid)

听起来你的过程捕获了TERM信号并在退出之前将其传递给它的孩子,让它们全部干净地退出。使用kill -9会立即结束父 ,而不会让它有机会让孩子退出。