2011-01-28 39 views

回答

1

这可能是孩子是僵尸。

子进程退出后,进入Z(僵尸)状态。这个状态的存在是为了保持孩子的退出状态,直到孩子的父进程能够检索它,并且防止孩子的PID被重用,直到父母被告知孩子退出。

通过调用系统调用系列调用之一,通知父进程已退出子进程。通常,这是响应于SIGCHLD信号完成的。一旦父母完成了这一步,孩子的PID将被释放,僵尸进程将消失。 (或者,如果父进程退出,则其所有未完成的子进程将重新设置为init,退出时它们将调用waitpid())。

0

父进程是否等待子进程的退出状态?你是否尝试过从wait()返回的值上的WIFSIGNALED()和WTERMSIG()宏,以查看子节点是否被信号终止,如果是,哪一个?

相关问题