Bash 手册说
如果已使用 shopt 设置了 huponexit shell 选项(请参阅第 4.3.2 节 [内置 Shopt],第 62 页),则当交互式登录 shell 退出时,Bash 会向所有作业发送 SIGHUP。
为什么 huponexit 在以下情况下不起作用?
在一个交互式 shell 中
$ shopt -s huponexit
$ sleep 4321 &
[1] 13816
$ exit
然后在另一个shell中
$ ps -j 13816
PID PGID SID TTY STAT TIME COMMAND
13816 13816 13728 ? S 0:00 sleep 4321
谢谢。
答案1
当互动时登录外壳退出
是重要的。
$ bash -l
$ shopt -s huponexit
$ sleep 120 &
[1] 24235
然后CtrlD退出(使用logout
,而不是exit
像您的示例中那样),并且
$ ps -j 24235
PID PGID SID TTY STAT TIME COMMAND
对方sleep
也被杀了。