2014-03-25 142 views
1

我试图杀死终止进程(也杀死孩子pid)的PPID进程立即发回信号给我的控制台之一,但子进程正在花时间回应终止响应。任何人有任何想法为什么发生..?杀死PPID可以同时杀死所有的与子进程的关联?

+1

什么信号发送回控制台?父进程是从shell /控制台启动的? –

回答

1

每当父进程就会被杀死,子进程成为孤立进程所以INIT进程成为孤儿进程的父进程。由于INIT进程是这样创建的:每当任何进程被终止时,它的所有子进程都由INIT进程负责,直到进程结束。

+1

优秀和谢谢答复,我GOOGLE了它,真的有道理.. – Guru

+0

我认为我应该等待一些更多的时间才能得到最好的我标记它的答案.. – Guru

+0

每当一个进程被杀害它的子进程不会立即死亡。你可以在谷歌关于INIT进程,你会发现,每当有任何进程被杀死,那么它的孩子被INIT进程照顾。因为INIT流程负责处理这些流程。 – Mayank

1

它看起来像父进程没有捕获任何信号,而子进程没有。

或者,子进程已打开资源并正在尝试优雅退出,确保正确处理这些资源。

在这种情况下,你可能需要将父进程改写为信号,转发给其子,然后wait()他们完成,并退出。

+1

感谢Henk,我已经通过先从底层子进程中查杀来实现解决方案,然后继续执行最后一个父ID。我的问题是为什么它会像Mayank的回答那样有意义。 – Guru