退出时未发送 SIGHUP

退出时未发送 SIGHUP

在 ubuntu 14.04.3(Linux 内核 3.16.53)上。

当我们输入 时,设置了 的 UI 终端(用 ++ 创建)CTR不会生成。ALTTshopt -s huponexitSIGHUPexit

当我们点击“X”关闭终端时,它会正确发送此信号

然而它在 tty1 上运行正常。

答案1

这是一种有记录的行为,来自man bash

如果使用 shopt 设置了 huponexit shell 选项,则当出现交互式登录shell 退出。

重要的词是“互动”和“登录”。

Ctrl当你使用+ Alt+打开终端时T,你将启动一个交互的未登录shell 实例,因此huponexit无法按预期工作。

另一方面,当你使用 ++ 打开 TTY 时,Ctrl你正在启动一个AltF1交互的登录的会话bash,因此huponexit在这种情况下会起作用。

另一方面,当你按下X终端上的按钮将其关闭时,内核中的终端驱动程序会将其发送SIGHUP到 shell,然后 shell 会将其发送SIGHUP到其所有作业,更具体地说,发送到会话的所有前台和后台进程组。

相关内容