杀死一个进程让僵尸进程困扰我... :(

时间:2011-08-30 10:33:50

标签: c++ zombie-process

我有一个程序,其中我使用fork。在子进程中,我只是登录到远程服务器并执行命令。在父进程中,我等待孩子完成其任务。如果它没有在预定的时间内完成它,我使用kill(child_pid,SIGTERM)杀死子进程。 但我注意到这留下了像

这样的僵尸进程
93113 s000  Z+ 0:00.00 (ssh)

随着超时时间的增加,僵尸进程也会增加,最终不再使用ssh。

如何在不创建困扰我的僵尸的情况下杀死子进程?

2 个答案:

答案 0 :(得分:5)

即使你kill孩子,你仍然需要wait

答案 1 :(得分:1)

您必须在父进程中侦听SIGCHLD并使用wait()等获取子进程的退出代码。