【发布时间】:2023-04-01 04:29:01
【问题描述】:
我没有在我的代码中处理SIGCHLD。终止后我的进程仍然被立即删除。我希望它成为僵尸进程。
如果我将SIGCHLD 设置为SIG_DFL 那么它会起作用吗?如何将SIGCHLD 设置为SIG_DFL?
我想让进程变成僵尸,所以我可以在waitpid之后读取父级中的子状态。
【问题讨论】:
-
您应该始终使用
waitpid读取子状态,尤其是当您安装了SIGCHLD处理程序(或没有它)时。阅读signal(7)、signal(2)、sigaction(2)了解详情。 -
waitpid 返回 -1 且 errno = ECHILD。所以子状态是无效的,只是一些垃圾。
标签: linux signals posix zombie-process waitpid