Basta pressionar Ctrl+Dduas vezes em vez de Alt-F4ou Ctrl-Q, isso envia o sinal de saída para o ssh atual, depois para o shell e o emulador de terminal deve fechar automaticamente sem o shell. Problema resolvido.
Profpatsch
@ Profpatsch: a menos que, é claro, você use IGNOREEOF(in bash) porque você também usa um multiplexador de terminal e se cansou de digitar algumas vezes ^a dcomo errado ^d, encerrando sem querer.
0C4000022L
Respostas:
28
De modo nenhum. Quando o processo do terminal termina, os processos do cliente também desaparecem e, quando isso acontece, a conexão com o servidor remoto será fechada pelo sistema operacional. O servidor verá a conexão fechar e finalizará os processos no servidor.
No entanto, é possível que você termine com processos remanescentes no servidor se eles tiverem um plano de fundo e ignorem certos sinais.
Quando fechamos o terminal diretamente, ele gera um sinal SIGHUP. Este sinal mata todas as tarefas / processos sob o terminal automaticamente / instantaneamente. Portanto, não há problema.
Isto pode não ser verdade. Se o bash estiver executando um loop, ele poderá ignorar o SIGHUP e continuar a sessão. Atualmente, estou tentando descobrir por que isso acontece.
Além disso, o processo de desligamento é observado muito bem aqui, mas aparentemente o Systemd mudou alguns comportamentos.
Seria melhor se você validasse sua reivindicação antes de responder, em vez de responder com "isso pode não ser verdade".
Kusalananda
Bem, tudo depende. Parece ser diferente entre: configurações do sistema * Init * Configurações Shell * Processos que estão sendo executados no terminal e sua manipulação do sinal
Ctrl+D
duas vezes em vez deAlt-F4
ouCtrl-Q
, isso envia o sinal de saída para o ssh atual, depois para o shell e o emulador de terminal deve fechar automaticamente sem o shell. Problema resolvido.IGNOREEOF
(inbash
) porque você também usa um multiplexador de terminal e se cansou de digitar algumas vezes^a d
como errado^d
, encerrando sem querer.Respostas:
De modo nenhum. Quando o processo do terminal termina, os processos do cliente também desaparecem e, quando isso acontece, a conexão com o servidor remoto será fechada pelo sistema operacional. O servidor verá a conexão fechar e finalizará os processos no servidor.
No entanto, é possível que você termine com processos remanescentes no servidor se eles tiverem um plano de fundo e ignorem certos sinais.
fonte
Quando fechamos o terminal diretamente, ele gera um sinal SIGHUP. Este sinal mata todas as tarefas / processos sob o terminal automaticamente / instantaneamente. Portanto, não há problema.
fonte
Isto pode não ser verdade. Se o bash estiver executando um loop, ele poderá ignorar o SIGHUP e continuar a sessão. Atualmente, estou tentando descobrir por que isso acontece.
Além disso, o processo de desligamento é observado muito bem aqui, mas aparentemente o Systemd mudou alguns comportamentos.
/server/463366/does-getting-disconnected-from-an-ssh-session-kill-your-programs
fonte