![为什么 huponexit 在以下情况下不起作用?](https://linux22.com/image/145658/%E4%B8%BA%E4%BB%80%E4%B9%88%20huponexit%20%E5%9C%A8%E4%BB%A5%E4%B8%8B%E6%83%85%E5%86%B5%E4%B8%8B%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
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
也被杀了。