Restaurar sesión SSH

13

Me conecté a mi servidor a través de SSH y creé un proceso, pero de repente mi conexión a Internet se desconectó. Sé que el proceso continúa, pero ¿cómo puedo restaurar la sesión anterior para ver el progreso del mismo?

Arash Mousavi
fuente

Respuestas:

16

Como se sugirió anteriormente, en el futuro puede usar la pantalla para evitar tal cosa. Una breve explicación sobre cómo usar la pantalla:

  1. screen -S compiling_stuff
  2. Haz cosas aquí. p.ej ./configure
  3. Si la conexión está cerrada por algún motivo, puede volver a conectarse al servidor y emitir screen -r comp
  4. También puede separar la sesión de pantalla presionando CTRL+A+D

Buena suerte

Valentin Bajrami
fuente
17

screen es lo mejor para iniciar un comando en un terminal que se mantendrá cuando se desconecte de él (ya sea a propósito, ctrl + ad, o porque la conexión se corta, etc.).

SIN EMBARGO , PUEDE volver a conectar un proceso en ejecución (por ejemplo, el shell de su sesión en ejecución, si aún se está ejecutando) a su terminal actual (es decir, volver a conectar stdin, stdout, teclado, pero también hacer que el nuevo terminal sea el terminal de control para ese proceso) usando: reptyr

Para lo mejor de ambos mundos: instálelo screen, inícielo y luego vuelva a adjuntar ese proceso en esas sesiones de pantalla con reptyr^^

Olivier Dulac
fuente
Oliver, ¿cómo es posible volver a adjuntar al proceso en ejecución? ¿Podría darme una pista por favor?
arquero
@archer: pista: sigue el enlace ^^ (final de mi segundo párrafo)
Olivier Dulac
@archer: pero la pantalla es más simple: una vez que inicie sesión en la pantalla, ctrl + ad: desconectar de la pantalla (y volver a casa). luego para volver a adjuntarlo a la pantalla: "screen -r" (o una forma más compleja, si las cosas se atascan). Para diferenciar entre muchas sesiones de pantalla, asígneles un nombre.
Olivier Dulac
7

No puedes En el futuro, puede evitar algo como esto usando screeno tmux, que se creó para permitir volver a conectarse a una sesión después de una desconexión.

Sven
fuente
5

Solo pensé en mencionar http://mosh.mit.edu/

Aplicación de terminal remota que permite la itinerancia, admite conectividad intermitente y proporciona eco local inteligente y edición de línea de las pulsaciones de teclas del usuario.

Mosh es un reemplazo para SSH. Es más robusto y receptivo, especialmente a través de Wi-Fi, celulares y enlaces de larga distancia.

Jon Conley
fuente
¡+1 para los jefes, nunca antes había oído hablar de esa herramienta!
Olivier Dulac
2

Utilizar screena través de SSH para volver a conectar más tarde a la sesión.

Hasta donde sé, no hay forma de volver a conectarme a una sesión ssh cerrada.

Uwe Plonus
fuente
1

Puedo recomendar Byobu :

Byobu es una mejora para los multiplexores de terminal GNU Screen o tmux que se puede utilizar para proporcionar notificaciones o estados en pantalla, así como para la gestión de múltiples ventanas con pestañas. Su objetivo es proporcionar una mejor experiencia de usuario para sesiones de terminal cuando se conecta a servidores remotos.

Frank Zafka
fuente
1

Yo recomendaría usar tmux :

Puede restaurar la sesión tmux a través de tmux attach.

tmux es una aplicación de software que se puede usar para multiplexar varias consolas virtuales, lo que permite al usuario acceder a múltiples sesiones de terminal separadas dentro de una sola ventana de terminal o sesión de terminal remota. Es útil para manejar múltiples programas desde una interfaz de línea de comando y para separar programas del shell de Unix que inició el programa. [1] Proporciona muchas de las mismas funciones que GNU Screen, pero se distribuye bajo una licencia BSD.

shyoo
fuente