首页 > 解决方案 > 当会话负责人退出、c 库或内核时,谁向孩子发送叹息信号?

问题描述

据我所知man 3 exit

如果退出进程是会话领导者,并且其控制终端是会话的控制终端,则向该控制终端的前台进程组中的每个进程发送 SIGHUP 信号

但谁发出信号?是c库还是内核?

清洁工作,c 库做什么,以及清洁工作内核做什么。

标签: clinuxkernel

解决方案


SIGHUP当控制进程(即具有控制终端的会话领导者)退出时,内核将信号发送到前台进程组 - 看看disassociate_ctty()哪个是从do_exit().

我不知道是否可以在用户空间中实现作业控制,甚至在理论上——FWIW 在我所知道的所有实现中它都在内核中

但是,请注意,许多 shell(如 bash)用它们自己的非标准怪癖和特性来补充操作系统实现的作业控制接口,使人们错误地认为它们是同一接口的一部分。


推荐阅读