SIGCHLD信号处理

dar*_*sky 7 c unix linux signals sigchld

在Unix中,当后台中的子进程终止时,它会向SIGCHLD父进程发送一个信号,通知它已终止.

即使进程处于前台,也会发生同样的情况吗?如果是这样,这意味着父母将忽略它.

这是正确的吗?或者如果它在前台,那么根本没有信号发送?

jim*_*ara 14

背景和前景是作业控制概念,并且是shell的一部分.它们应用于进程,不会影响生成(执行)另一个进程的进程.

子进程是fork() - exec()调用的结果.子进程获取执行fork()调用的进程的父pid.这是SIGCHLD信号的上下文,父pid接收SIGCHLD信号.子进程是"前台"还是"后台"并不重要,只有ppid对进程退出才有意义.

  • @jimmcnamara:`SIGCHLD` 由内核发送。 (2认同)