【问题标题】:SIGCHLD sended by another process to parent由另一个进程发送给父进程的 SIGCHLD
【发布时间】:2014-01-16 08:09:09
【问题描述】:

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

当我尝试发送信号()或做时

kill -SIGCHLD <PID> 

什么都没有发生。

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

【问题讨论】:

    标签: signals fork parent-child kill sigchld


    【解决方案1】:

    内核会处理这个问题。

    wait()不是监听(任何)SIGCHLD 发送到进程的信号处理程序,因为它可能通过sigaction()signal() 建立。

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 2011-04-13
      • 1970-01-01
      相关资源
      最近更新 更多