Qual é a diferença entre ~. (ponto til) e "sair" ao sair de uma conexão SSH

9

Sempre que eu tiver uma conexão X11 em segundo plano em uma sessão SSH, devo usar ~. e não exit para sair da sessão ssh.

Qual é a diferença aqui? Posso sempre usar a seqüência de escape ~. ?

    
por Hải Phong 13.03.2016 / 15:38

2 respostas

5

exit informa ao seu shell atual para sair. Como (quando não há uma conexão de encapsulamento, por exemplo X11, ativa), isso significa que o processo que o sshd invocou no lado do servidor foi encerrado e, em seguida, o SSH desconectou-se.

~. é a sequência de escape "mágica" que o SSH captura e desconecta imediatamente (incluindo o túnel X11).

Então, não, estes não são intercambiáveis. Se você deseja que seu shell remoto (ou qualquer programa que esteja sendo executado remotamente) seja encerrado normalmente, você deve finalizá-lo de acordo.

    
por 13.03.2016 / 15:45
3

Já está bem descrito na outra resposta, mas gostaria de acrescentar alguns antecedentes:

A conexão SSH única hoje pode conter várias sessões (seus shells, comando), encaminhamento TCP canais e encaminhamento X11 canais. E aí vem a diferença:

  • Escrever exit (ou Ctrl + D ) destrói o canal sessão , mas se houver algum X11 ativo canais (por exemplo gvim deixa várias conexões para o gerenciamento do servidor X área de transferência e título , que não é fechado por exit ). A gravação de exit deixará este aplicativo X11 em execução e seu terminal "travará" até que seja fechado.

  • Escrever ~. interrompe toda a conexão . Você pode perceber se você executa algum aplicativo X11, que ele também é fechado quando você escreve ~. .

por 13.03.2016 / 21:22

Tags