reinicializar / reconexão um terminal após a interrupção da rede
Pergunta
Eu tenho o que é provavelmente uma questão relacionada terminal muito simples. Estou correndo Ubuntu 8.10 Intrepid Ibex, usando o Gnome, e muitas vezes eu abrir um terminal com base em sessão ssh apenas para tê-lo deixado cair em algum momento mais tarde. Assim que a sessão for interrompida a terminal de se tornar inutilizável, obviamente, porque a conexão de rede foi descartada.
Existe uma maneira de re-inicializar a sessão, ou até mesmo reverter para um terminal local de trabalho?
No Windows, usando massa de vidraceiro, quando isso acontece, eu posso clicar com o botão direito e selecione o reinício da sessão, e não é necessário abrir um novo terminal, no entanto, sob linux minha falta de compreensão sobre esta sujeito tem me levar a sempre perto do terminal extinta, e reiniciar um novo a partir do zero. Eu gostaria de aprender uma nova e útil truque se há um lá fora.
Além disso, eu encontrei o seguinte post que está redigido de forma muito semelhante ao meu,
< a href = "https://stackoverflow.com/questions/474967/automatically-or-more-easily-"> automaticamente (ou mais facilmente) reconectar a uma sessão de tela após a interrupção da rede reconectar-to-a-tela-session-após-network-interr
No entanto, tanto quanto eu posso dizer, este é um tema diferente.
Solução
Você quer usar a sua fuga SSH . Por padrão é '~' e ~. irá encerrar sua conexão.
A questão é ligada ao é sobre tela, que é útil para retomar a sua sessão remota uma vez que você usar o caractere de escape para matar seu processo ssh local e reconexão.
Outras dicas
Primeiro uso ~.
para desconectar sua conexão ssh localmente. Isso faz com que você volta a um terminal local de trabalho. Você poderia também você um outro terminal para matar o comando apropriado ssh.
A fim de manter seu estado remoto você deve usar screen
como previamente sugerido.
Recentemente eu descobri sobre mosh que é um cliente shell resumable baseados em UDP interessante. Ele usa ssh para inicializar a conexão, e provavelmente necessidades Mosh instalado no servidor (e UDP acesso entre o cliente e servidor), no entanto, ele pode se recuperar de desconexões e muda IP do cliente.
Para ter sua utilizável terminal local novamente, você pode usar o reset comando.
Para executar um comando em um terminal virtual você pode anexar / destacá você pode usar ecrã ou tmux . uso típico para ecrã :
$ screen -S somename
screen$ some-console-command
...
^ad
Você desanexar do ecrã por ctrl digitação + um, em seguida, d
Em seguida, você pode listar a sessão e anexar a ele
$ screen -ls
$ screen -dr somename
screen$