当父进程被“kill -9”杀死时,子进程是否也会被杀死?
今天早上我的一位同事告诉我,当他用“kill -9”杀死supervisord时,supervisord的子进程没有被杀死。当父进程被“kill -9”杀死时,子进程是否也会被杀死?
他很确定,但我尝试了很多次,没有发现这种情况。
所以当一个父进程被“kill -9”杀死的时候,linux会确保它的子进程也被杀死了吗?
您必须使子进程守护进程才能在父亲死亡(或死亡)时将其杀死,否则它们将被init(1)采用。
不,当父母死亡时,子进程不一定会被杀死。
但是,如果孩子有一个打开的管道正在写入并且父母正在读取,它将在下一次尝试写入管道时收到SIGPIPE,对此,默认操作是将其杀死。这通常是在实践中发生的。
你只需要知道你想杀死哪个进程或服务。在我的情况下,httpd是。
killall -9 httpd
它会杀死httpd的所有子进程。
完全错过了问题的要点。 – 2012-11-14 02:46:57
这篇文章不回答提出的问题,并且由于其他答案的作用,您可能希望删除这篇文章。 – 2012-11-14 02:47:50
如果您关闭终端pid,这是进程的父进程ID,则终端将被关闭。当终端关闭时,它的所有进程也会被杀死。但是,如果你在shell中创建一个子shell,那么如果你创建了任何进程并杀死该进程的ppid,那么只有该子shell kill和他们的子成为孤儿。他们的父母成为init并且pid是1.
[学员@ SIPL〜] $ ps -ef | grep睡眠实习生3893 3870 0 10:55 pts/1 00:00:00 sleep 4000实习生3895 3788 0 10:55 pts/0 00:00:00 grep --color =自动睡眠[实习生@ SIPL〜] $ kill - 9 3870 [学员@ SIPL〜] $ ps -ef | grep睡眠受训者3893 1 0 10:55 pts/1 00:00:00 sleep 4000受训者3906 3788 0 10:55 pts/0 00:00:00 grep --color =自动睡眠
下面是链接如果您对如何创建僵尸进程感兴趣并尝试如何处理您的系统,请创建一个僵尸进程: http://www.unix.com/unix-dummies-questions-answers/100737-how- do-you-create-zombie-process.html – Klathzazt 2009-09-29 10:55:00
守护进程,父进程,父进程,子进程和僵尸进程。 电脑讲述了这样一个有趣而异想天开的故事。 – jwarner112 2013-09-30 17:02:39