not*_*ony 15 linux signals thread-safety
当涉及到进程树时,SIGTERM和SIGKILL有什么区别?
当一个根线程接收到SIGKILL时,它会被彻底杀死,还是会让它的子线程变成僵尸?
是否有任何信号可以通过不离开任何僵尸线程发送到根线程干净地退出?
谢谢.
Chr*_*rie 16
如果你杀死了根进程(父进程),这应该是孤儿,而不是僵尸儿.当你杀死进程的父进程时会产生孤立子进程,并且内核使init成为孤儿的父进程.init应该等到孤儿死了,然后用等待来清理它.
当进程(而不是其父进程)结束且其父进程未从进程表中取出其退出状态时,将创建僵尸子进程.
这听起来像你担心离开孤儿,因为根据定义,当你杀死一个僵尸父进程时,僵尸儿童本身就会死亡.
要杀死你的孤儿,请使用kill -9,这是等效的SIGKILL.
这是一个更深入的教程,用于杀死linux上的东西:http: //riccomini.name/posts/linux/2012-09-25-kill-subprocesses-linux-bash/