繁体   English   中英

SIGCHLD信号处理

[英]SIGCHLD Signal Processing

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

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

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

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

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

没有前景孩子这样的东西 术语后台进程用于简单地指代我们主要处理父进程(可以创建子进程来完成其工作的一部分)。 子进程退出SIGCHLD始终发送到父进程。 但是,父进程通常会忽略它。 如果父级要处理子级的退出或者只在子级退出后执行某些操作,则可以使用wait()系统调用来获取子进程的状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM