É seguro fechar o shell apenas clicando em “X” ou usando “ctrl + d”?

10

É seguro fechar o shell apenas clicando em "X" ou usando "ctrl + d" enquanto estiver logado como root com su ou é mais seguro fechá-lo digitando "exit"? Existe alguma diferença (segurança-sábio) em tudo ou é o mesmo e não importa o caminho que você usa?

    
por pootzko 10.03.2012 / 14:28

3 respostas

12

Ctrl-D ou exit é o mesmo.

Se você estiver usando o "X", o gerenciador de janelas envia um sinal de término para o shell. Que tem no final o mesmo resultado. Se o shell não reage, o usuário geralmente recebe um aviso e pode forçar o shell a finalizar (igual a kill -9 $PID ).

Existe uma pequena diferença entre o método "X" - e de saída se você estiver usando zsh como shell: Se você tiver um processo de segundo plano em execução, exit / ctrl-D produzirá pela primeira vez apenas um aviso mensagem "você tem trabalhos em execução", a segunda vez que o shell é fechado. Com o botão "X", o shell termina imediatamente sem nenhum aviso.

    
por 10.03.2012 / 15:21
3

Fechar o emulador de terminal não é o mesmo que pressionar CTRL + D (a menos que a opção huponexit esteja definida).

  • Quando você fecha o terminal (clicando em "X"), o emulador de terminal envia um SIGHUP para o shell. Quando o bash recebe um SIGHUP, ele também envia um SIGHUP para todos os seus trabalhos.

  • Quando você sai do terminal com CTRL+D ou logout ou exit , o shell sai sem enviar um SIGHUP para todos os trabalhos. Esse é o comportamento padrão, mas pode ser alterado definindo o bash shopt setting huponexit .

Por fim, se o seu objetivo é garantir que não haja nada em segundo plano, é melhor clicar em "X".

.

As informações fornecidas por jofel em seu comentário estão incorretas (desculpe jofel). O emulador de terminal não tem idéia de quais trabalhos estão sendo executados sob o shell, portanto, não pode finalizá-los.

NOTA :
Esse comportamento é completamente dependente do shell. É inteiramente possível que diferentes shells tenham diferentes comportamentos padrão.

    
por 26.04.2012 / 15:36
1

Não há diferença. Tanto que, quando você pressiona ^ D, você está fazendo a mesma coisa que digitar 'exit':

$ su -
Password:
# [press ^D]
logout
    
por 10.03.2012 / 15:06