Comando Screen para recuperar sesión SSH interrumpida

¿Algo falla o no sabes como funciona? Pide ayuda aquí!
Responder
Avatar de Usuario
MuadDib69
Pi Master
Pi Master
Mensajes: 276
Registrado: 16 Dic 2019, 18:22
Agradecido: 60 veces
Agradecimiento recibido: 13 veces

Ayer se me cerró el cliente ssh de android a mitad upgrade. No sabía si al haberlo lanzado seguiría rulando aunque ya no estuviese "yo" por ssh. Leí que este "screen" puede ser muy útil para tales accidentes.
https://www.raspberrypi.org/forums/view ... p?p=101209
¿Lo habéis probado?
Saludos
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

El comando screen es habitual, al igual que el nohup ;-)
Pero para eso hace falta saber lo básico de procesos con el comando ps
Estos usuarios agradecieron al autor egrueda por el mensaje:
MuadDib69
Avatar de Usuario
MuadDib69
Pi Master
Pi Master
Mensajes: 276
Registrado: 16 Dic 2019, 18:22
Agradecido: 60 veces
Agradecimiento recibido: 13 veces

Para los padawans como yo cuyo primer contacto "extra-windows" es la pi, todo es nuevo :oops:
Ya me has puesto deberes again;
. screen
. nohup
. ps

jeregüigou
Avatar de Usuario
MuadDib69
Pi Master
Pi Master
Mensajes: 276
Registrado: 16 Dic 2019, 18:22
Agradecido: 60 veces
Agradecimiento recibido: 13 veces

Estos usuarios agradecieron al autor MuadDib69 por el mensaje:
klingsor
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

El comando ps es la navaja suiza para ver qué está corriendo.
Un ejemplo es "ps ax" para un listado plano o "ps uaf -A" para ver procesos padres e hijos

Si ejecuto una tarea que lleva un rato, le puedo añadir un "&" para que se ejecute de fondo y puedo seguir con mi consola
Por ejemplo "updatedb &"
Y luego con el comando ps puedo ver mis procesos, o pasarlos a fondo o a primer plano con bg y fg

Si por ejemplo abro una sesión remota (ssh) y ejecuto procesos, la mayoría de esos procesos dependerán de mi terminal, de mi sesión ssh.
Y al cerrar mi conexión, muchos procesos se cerrarán con la sesión a menos que no dependan de mi sesión.
Si queremos ejecutar un proceso largo pero no interactivo, lo podemos lanzar con nohup para que siga corriendo después de cerrar mi sesión.

Y juego juntamos todo:

Código: Seleccionar todo

nohup wget -c "https://example.com/file.tgz" &
Con ese comando, ejecuto una descarga (wget), la ejecuto de fondo y la "deattach" de mi sesión.
Ahora me puedo desconectar y la descarga continuará

Venga, para empezar vale con eso :-)
Estos usuarios agradecieron al autor egrueda por el mensaje:
klingsor
Avatar de Usuario
MuadDib69
Pi Master
Pi Master
Mensajes: 276
Registrado: 16 Dic 2019, 18:22
Agradecido: 60 veces
Agradecimiento recibido: 13 veces

Pillao.
Mi preocupación inicial era el upgrade, porque me salió un aviso en kodi de que ya estaba la versión siguiente, y a mitad upgrade mi teléfono perdió el wifi.
Según lo que comentas, podría comenzar con un

Código: Seleccionar todo

 screen -S update 
y dentro de esa sesión lanzar un

Código: Seleccionar todo

sudo nohup apt-get upgrade &
(no sé si el nohup va antes o después de sudo).
Si por lo que sea pierdo la sesión, la recupero con

Código: Seleccionar todo

screen -r update
Responder