退出时未发送 SIGHUP

Asi*_*ala 5 command-line bash

在 ubuntu 14.04.3(Linux 内核 3.16.53)上。

UI终端(具有创建CTR+ ALT+T设置) shopt -s huponexit不产生SIGHUP时,我们键入exit

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

但是它在 tty1 上工作正常。

hee*_*ayl 6

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

如果 huponexit shell 选项已使用 shopt 设置,则 bash 会在交互式登录shell 退出时向所有作业发送 SIGHUP 。

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

当你打开一个终端Ctrl+ Alt+ T,你正在发起一个交互式的非登录外壳的实例,因此huponexit不会按预期方式工作。

在另一方面,在与如打开一个TTY Ctrl+ Alt+ F1,你正在发起的互动登录会话bash,所以huponexit会在这种情况下工作。

另一方面,当您按下X终端上的按钮将其关闭时,内核中的终端驱动程序会发送SIGHUP到外壳程序,外壳程序又会将SIGHUP会话的所有前台和后台进程组从技术上讲发送到所有作业。