c - 当会话负责人退出、c 库或内核时,谁向孩子发送叹息信号?
问题描述
据我所知man 3 exit
:
如果退出进程是会话领导者,并且其控制终端是会话的控制终端,则向该控制终端的前台进程组中的每个进程发送 SIGHUP 信号
但谁发出信号?是c库还是内核?
清洁工作,c 库做什么,以及清洁工作内核做什么。
解决方案
SIGHUP
当控制进程(即具有控制终端的会话领导者)退出时,内核将信号发送到前台进程组 - 看看disassociate_ctty()
哪个是从do_exit()
.
我不知道是否可以在用户空间中实现作业控制,甚至在理论上——FWIW 在我所知道的所有实现中它都在内核中。
但是,请注意,许多 shell(如 bash)用它们自己的非标准怪癖和特性来补充操作系统实现的作业控制接口,使人们错误地认为它们是同一接口的一部分。
推荐阅读
- reactjs - 如何保护您的 spfx 设计的 SharePoint Online 表单和工作流 - spfx 项目的最佳安全性
- python - 纯 python 上的 Numba VS numpy-python 上的 Numpa
- ios - 在 setNeedsDisplay 之后,UITabBar 没有改变颜色
- eclipse-hono - 将数据从 Hono 发送到同上
- php - PHP 单元测试 - 使用其中的服务实例测试功能
- android - 当它存在于 NestedScrollView 中时,如何停止加载所有 RecyclerView 元素?
- django - 在 ModelViewSet 中向查询集添加数据
- scala - 不支持的身份验证令牌,方案='none' 仅在禁用身份验证时允许:{ scheme='none'} - Neo4j 身份验证错误
- php - PHP 文件上传不再工作,未进行任何更改(Plesk 托管)
- c# - 从一个word文档复制到另一个word文档