当子进程死亡时,父进程是否总是会收到SIGCHLD?

时间:2016-06-25 17:59:18

标签: c++ c select signals zombie-process

我在非阻止模式下使用signalfd()功能,并且关闭exec() 功能也已启用:

sigset_t set;
sigemptyset(&set);
sigaddset(&set, SIGCHLD);

f_socket = signalfd(-1, &set, SFD_NONBLOCK | SFD_CLOEXEC);

然后我使用poll()命令监听信号。

使用该机制时,是否可能错过SIGCHLD信号?

我有一台服务器已经运行了将近3周,它有一个僵尸。我能想到的唯一方法就是儿童过程死亡,不知何时父母没有收到信号。每次我访问服务器时,它通常会创建许多子项(最小值大约为10,我认为最大值为30),所有这些都被捕获。所以我不太确定为什么只有一个人消失

0 个答案:

没有答案