Respostas:
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 no final tem o mesmo resultado. Se o shell não reagir, o usuário geralmente recebe um aviso e pode forçá-lo a terminar (igual a kill -9 $PID
).
Há uma pequena diferença entre o "X" - e o método exit se você estiver usando zsh
como shell: se você tiver um processo em segundo plano em execução, exit
/ ctrl-D produzirá pela primeira vez apenas uma mensagem de aviso "você tem trabalhos em execução", o segunda vez que o shell é fechado. Com o botão "X", o shell termina imediatamente sem nenhum aviso.
Fechar o emulador de terminal não é o mesmo que pressionar CTRL + D
(a menos que a opção huponexit
esteja configurada).
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. Este é o comportamento padrão, mas pode ser alterado, definindo a festa shopt
cenário huponexit
.
Portanto, se seu objetivo é garantir que não haja nada em segundo plano, é mais seguro 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 é possível finalizá-los.
NOTA :
Esse comportamento é completamente dependente do shell. É perfeitamente possível que diferentes shells tenham comportamentos padrão diferentes.
Ctrl+d
processo é herdado por PPIDs 1 = systemd
&
permanecerão em execução. Se você "X", eles serão encerrados.