c - SIGCHLD信号处理

标签 c linux unix signals sigchld

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

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

这样对吗?或者如果它在前台,那么根本没有发送信号?

最佳答案

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

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

关于c - SIGCHLD信号处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9845991/

相关文章:

batch-file - 在 Windows 批处理文件中使用 sed 或 tr 命令将双引号替换为空格

bash - 监控 xargs 内的进度

c - 嵌入式开发的 Pin Mask 约定

python - Kali Linux (Debian) 无法安装 pip.py

linux - smb for Linux 只适合环境吗?

linux - SO_REUSEPORT 套接字服务器

sockets - TCP/IP 套接字服务器并发

c - 如何从此函数中删除多个返回

c - 尾随换行符

c - 在 DOS 中为 "Daylight Savings Time"