【发布时间】:2020-03-12 03:02:26
【问题描述】:
我刚刚做了一个讲座,总结如下:
收获
-
由父级对终止的子级执行(使用 wait 或 waitpid)
为父级提供退出状态信息
内核然后删除僵尸子进程
所以我知道收割是通过从父进程调用wait 或waitpid 来完成的,之后内核会删除僵尸进程。如果情况确实如此,那么只有在调用wait 或waitpid 时才进行收割,为什么子进程在返回或入口函数后实际上消失了——我的意思是确实看起来子进程已经收获,因此即使父进程可能没有等待,也不会浪费任何资源。
那么只有在调用wait 或waitpid 时才可能“收割”?只要进程返回并退出其入口函数(我假设所有进程都这样做),进程是否就被“收割”了 - 将“收割”说成是特别的东西有什么意义?
【问题讨论】:
标签: c zombie-process waitpid