SIGCHLD由另一个流程发送给父母

时间:2013-12-29 06:03:17

标签: signals fork parent-child kill sigchld

假设我们的流程创建了一个子项,然后调用wait()

当我尝试发送signal()或

kill -SIGCHLD <PID> 
根本没有任何反应。

所以问题是:Linux中的进程如何确定孩子没有发送信号SIGCHLD?或者,也许还有另一种机制?

1 个答案:

答案 0 :(得分:0)

内核会处理这个问题。

wait() 是一个信号处理程序,侦听发送给进程的(任何)SIGCHLD,因为它可能是通过sigaction()或{{1}建立的}}

来自wait()'s POSIX spec(我强调):

  

wait()和waitpid()函数应获取与其中一个调用者的子进程相关的 的状态信息