Digitar ~.
realmente faz o truque de fechar todas as conexões "aninhadas" até o mais profundo.
Faz isso com a saída amigável que você deseja, desde que todas as suas conchas estejam configuradas para lidar com o SIGHUP como uma morte graciosa. O Bash faz isso por padrão. Pode facilmente verificar a saída amigável para o seu set-up por exemplo, ver se os .bash_history
arquivos de suas sessões mais profundas obter devidamente atualizado após a ~.
, ou se você definir suas Bash-es não atualização .bash_history ao sair, então você pode definir um trap
na Evento EXIT (ou no seu ~/.bash_logout
) com um comando que grava algo em algum lugar e depois vê se foi executado.
Além disso, não sei o que você quer dizer com "sair de todas as sessões no shell atual". Cada bash interativo é apenas uma sessão, e os comandos que você digita vão sempre apenas para o shell mais profundo da cadeia ProxyJump. Se você quis dizer "os trabalhos em segundo plano no shell atual", o bash envia SIGHUP para todos os seus trabalhos ao receber o SIGHUP pelo daemon ssh ~.
, portanto, essa saída deve ser totalmente amigável se os trabalhos em execução reagirem adequadamente a um SIGHUP.
~.
apenas desconecta seu cliente SSH (é útil quando a rede desapareceu, por exemplo). Normalmente, o daemon SSH reconhecerá isso e sinalizará sua sessãoSIGHUP
, portanto, não é o mesmo que sair do shell normalmente (mas é útil se você não conseguir obter nenhuma resposta do shell).