在 ubuntu 14.04.3(Linux 内核 3.16.53)上。
当我们输入 时,设置了 的 UI 终端(用 ++ 创建)CTR不会生成。ALTTshopt -s huponexit
SIGHUP
exit
当我们点击“X”关闭终端时,它会正确发送此信号
然而它在 tty1 上运行正常。
答案1
这是一种有记录的行为,来自man bash
:
如果使用 shopt 设置了 huponexit shell 选项,则当出现交互式登录shell 退出。
重要的词是“互动”和“登录”。
Ctrl当你使用+ Alt+打开终端时T,你将启动一个交互的,未登录shell 实例,因此huponexit
无法按预期工作。
另一方面,当你使用 ++ 打开 TTY 时,Ctrl你正在启动一个AltF1交互的,登录的会话bash
,因此huponexit
在这种情况下会起作用。
另一方面,当你按下X
终端上的按钮将其关闭时,内核中的终端驱动程序会将其发送SIGHUP
到 shell,然后 shell 会将其发送SIGHUP
到其所有作业,更具体地说,发送到会话的所有前台和后台进程组。