首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

多个子进程结束时刻未知,父进程怎么回收僵死进程?

2013-11-29 
多个子进程结束时刻未知,父进程如何回收僵死进程??如果父进程创建了很多子进程,而且子进程的结束顺序(或时

多个子进程结束时刻未知,父进程如何回收僵死进程??
如果父进程创建了很多子进程,而且子进程的结束顺序(或时刻)是未知的,
那么当子进程结束的时候,父进程怎样才能调用wait()或waitpid()让子进程退出僵尸状态呢?

考虑使用sigprocmask+sigsuspend,先将SIGCHLD信号屏蔽,然后统计fork了多少个子进程(total个),父进程中在 解除阻塞SIGCHLD之前,调用sigsuspend,防止在解除之前有SIGCHLD信号发生,但是在解除阻塞SIGCHLD之后,如何用pause()函数再等待下一个SIGCHLD信号有时会造成一直等待的问题,因为子进程何时退出是不一定的嘛,这种情况应该怎样解决呢??

希望大家多给个思路多个子进程结束时刻未知,父进程怎么回收僵死进程? Linux?进程?信号
[解决办法]
考虑能否用WIFEXITED判断子进程退出状态呢?
[解决办法]

引用:
Quote: 引用:

考虑能否用WIFEXITED判断子进程退出状态呢?

SignalHandle 中已经用了

为什么一定要有pause函数?直接等待信号的到来不行么?
[解决办法]
直接在信号处理函数中用wait不行吗,
搞不懂为啥搞得这么复杂呢。

热点排行