Na segunda-feira de manhã, entrei em uma caixa ssh
e executei o seguinte comando:
tail -f /var/log/foo/bar.log | grep something_interesting &
Em algum momento do dia, desconectei-me pressionando Ctrl+D.
Na sexta-feira, entrei na mesma caixa e descobri que os tail
processos ainda estavam em execução. Eu esperava que eles tivessem desistido quando eu saísse.
Ao pesquisar mais, parece que shopt huponexit
está configurado off
nessa caixa, em todas as outras caixas Linux que experimentei e na única caixa do Mac OS X que experimentei.
Quando isso começou a ser padronizado off
em vez de on
?
Responder1
O padrão era desativado quando foi introduzido, no bash 2.02:
@@ -119,6 +123,10 @@ int interactive = 0;
/* Non-zero means that the shell was started as an interactive shell. */
int interactive_shell = 0;
+/* Non-zero means to send a SIGHUP to all jobs when an interactive login
+ shell exits. */
+int hup_on_exit = 0;
+
http://git.savannah.gnu.org/cgit/bash.git/commit/shell.c?id=cce855bc5b117cb7ae70064131120687bc69fac0