当会话引导程序、c库或内核退出时,谁向子级发送sighup信号



如我从man 3 exit:所知

如果退出进程是会话领导者及其控制终端是会话的控制终端,然后每个进程在该控制终端的前台进程组中SIGHUP信号

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

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

当控制进程(即具有控制终端的会话领导者(退出时,它是向前台进程组发送SIGHUP信号的内核——请参阅从do_exit()调用的disassociate_ctty()

我不知道作业控制是否可以在userland中实现,甚至从理论上讲——FWIW在我所知道的所有实现中都在内核中。

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

最新更新