SIGHUP não está sendo enviado na saída

4

No Ubuntu 14.04.3 (kernel do Linux 3.16.53).

O terminal da interface do usuário (criado com CTR + ALT + T ) configurado com shopt -s huponexit não gera SIGHUP quando digitamos exit .

Ele envia corretamente este sinal quando clicamos em 'X' para coletar o terminal

No entanto, funciona corretamente em tty1.

    
por Asif Bahrainwala 03.12.2015 / 12:08

1 resposta

5

É um comportamento documentado, de man bash :

  

Se a opção de shell huponexit foi definida com shopt, o bash envia um   SIGHUP para todos os jobs quando um shell login interativo é encerrado.

As palavras importantes são "interativo" e "login".

Quando você abre um terminal com Ctrl + Alt + T , você está iniciando um interativo , < instância strong> non-login do shell, portanto huponexit não funcionará como esperado.

Por outro lado, ao abrir um TTY com, e. Ctrl + Alt + F1 , você está iniciando uma sessão interativa , login de bash , então huponexit funcionará nesse caso.

Em uma nota diferente, quando você pressiona o botão X no terminal para fechá-lo, o driver de terminal no kernel envia SIGHUP para o shell, que por sua vez envia SIGHUP para todos os seus trabalhos, mais tecnicamente todos os grupos de processos de primeiro plano e plano de fundo da sessão.

    
por heemayl 03.12.2015 / 12:22