为什么 huponexit 在以下情况下不起作用?

为什么 huponexit 在以下情况下不起作用?

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也被杀了。

相关内容