当您按下Ctrl+C
终端时,SIGINT
信号将被发送到前台进程组。
现在您可以在终端中发送其他信号(例如:Ctrl+Z
)。所有这些信号是否也被发送到前台进程组,或者是否有一些信号被发送到后台进程组?
答案1
所有键盘信号仅发送到前台进程组。
有时,信号会发送到会话中的所有进程,但这些信号不是由终端生成的。当 shell(至少bash
)接收到此信号时SIGHUP
,它会(默认情况下)向其所有子进程发送此信号。并且bash
可以配置为SIGHUP
在退出时发送到所有作业 ( huponexit
)。