Restaurar sessão SSH

13

Conectei meu servidor via SSH e criei um processo, mas de repente minha conexão com a Internet foi desconectada. Sei que o processo está em andamento, mas como restaurar a sessão anterior para ver o andamento dela?

Arash Mousavi
fonte

Respostas:

16

Como sugerido acima, no futuro você pode usar a tela para impedir isso. Uma breve explicação sobre como usar a tela:

  1. screen -S compiling_stuff
  2. Faça coisas aqui. por exemplo ./configure
  3. Se a conexão estiver fechada por algum motivo, você poderá reconectar-se ao servidor e emitir screen -r comp
  4. Você também pode desanexar a sessão da tela pressionando CTRL+A+D

Boa sorte

Valentin Bajrami
fonte
17

screen é o melhor para iniciar um comando em um terminal que será mantido quando você o desconectar (de propósito, ctrl + anúncio ou porque a conexão morre, etc.).

No entanto, você pode reconectar um processo em execução (por exemplo, o shell da sua sessão em execução, se ainda estiver em execução) ao terminal atual (por exemplo, reconectar stdin, stdout, teclado, mas também tornar o novo terminal o terminal de controle para esse processo) usando: reptyr

Para o melhor dos dois mundos: instale screen, inicie-o e reconecte esse processo nas sessões dessa tela com reptyr^^

Olivier Dulac
fonte
Oliver, como é possível se reconectar ao processo em execução? Você poderia me dar uma dica, por favor?
Arquivador
@archer: dica: seguir o link ^^ (final do meu parágrafo 2º)
Olivier Dulac
@ archer: mas a tela é mais simples: uma vez executado na tela, ctrl + ad: desconecte da tela (e vá para casa). em seguida, para reconectá-lo à tela: "screen -r" (ou uma maneira mais complexa, se as coisas travarem). Para diferenciar entre muitas sessões de tela, dê um nome a elas.
Olivier Dulac
7

Você não pode. No futuro, você pode evitar algo assim usando screenou tmux, que foi criado para permitir a reconexão a uma sessão após uma desconexão.

Sven
fonte
5

Só pensei em mencionar http://mosh.mit.edu/

Aplicativo de terminal remoto que permite roaming, suporta conectividade intermitente e fornece eco local inteligente e edição de linha das teclas do usuário.

Mosh é um substituto para o SSH. É mais robusto e responsivo, especialmente através de links Wi-Fi, celular e de longa distância.

Jon Conley
fonte
+1 no heads-up, nunca ouvi falar dessa ferramenta antes!
Olivier Dulac
2

Use screenvia ssh para reconectar mais tarde à sua sessão.

Até onde eu sei, não há como reconectar-se a uma sessão ssh fechada.

Uwe Plonus
fonte
1

Posso recomendar Byobu :

O Byobu é um aprimoramento para os multiplexadores de terminal GNU Screen ou tmux que pode ser usado para fornecer notificações ou status na tela, bem como gerenciamento de múltiplas janelas com guias. Ele visa proporcionar uma melhor experiência do usuário para sessões de terminal ao conectar-se a servidores remotos.

Frank Zafka
fonte
1

Eu recomendaria usar o tmux :

Você pode restaurar a sessão do tmux via tmux attach.

O tmux é um aplicativo de software que pode ser usado para multiplexar vários consoles virtuais, permitindo que o usuário acesse várias sessões de terminal separadas dentro de uma única janela ou sessão de terminal remoto. É útil para lidar com vários programas a partir de uma interface de linha de comando e para separar programas do shell Unix que iniciou o programa. [1] Ele fornece muitas das mesmas funções que o GNU Screen, mas é distribuído sob uma licença BSD.

tímido
fonte