Bem, se os problemas de rede causarem a interrupção da conexão, isso significa que os pacotes de dados não estão passando. Isso obviamente significa que os pacotes de "conexão próxima" do cliente também não podem passar.
Assim, durante problemas de rede, o servidor não sabe que você já matou o cliente. Ele só descobrirá se ele tentar enviar mais dados e a) não receber uma confirmação ou b) receber um pacote de redefinição ("esta conexão não existe mais").
De qualquer forma, uma vez que a conexão SSH esteja quebrada, o sshd enviará um sinal de "desligamento" (SIGHUP) para qualquer programa que esteja sendo executado em primeiro plano (seu shell, seu editor de texto ou qualquer outro). O shell enviará o mesmo SIGHUP para todos os seus trabalhos em segundo plano, antes de sair. Portanto, seus trabalhos em segundo plano também serão encerrados. (Esta é a razão pela qual ferramentas como nohup
existem, afinal.)
Se você matar ssh
enquanto a rede estiver bem, o mesmo acontece - o servidor receberá um pacote "reset de conexão" e enviará "hangup" para o shell.
Finalmente, se você sair através do próprio shell (usando exit
ou Ctrl D ), ele também passará pelo mesmo processo de limpeza em si, embora desta vez tenha a chance de lembrá-lo sobre a execução de trabalhos.