Raspberry Pi,  Servicios

Recuperar procesos de una sesión SSH

El caso es que estas haciendo un dist-upgrade de raspbian pasando de stretch a buster, y durante la actualización, el portátil dice que no tiene batería y se va a dormir. ¿Y ahora que? El proceso apt está activo en memoria pero asociado a la sesión ssh, entonces ¿cómo llegamos a el?

Pues como Linux es nuestro amigo y siempre tiene alguna solución, tenemos la utilidad reptyr que permite mover un proceso existente de terminal. Si realizamos la llamada a la utilidad, pasandole el PID del proceso, éste se desancla de la sesión ssh para pasar a la sesión activa.

reptyr PID
# ./reptyr 11962
[-] Timed out waiting for child stop.

Installing new version of config file /etc/init.d/hostapd ..

E voilà! reptyr se trae el proceso a tty actual y podemos ver la salida.

Para que no ocurran estas situaciones, es preferible utilizar screen, que permite interaccionar entre sus sesiones aunque nuestro portátil pierda su bateria!

Puede ocurrir que si no tienes instalado el binario no puedas utilizar apt (está bloqueado) para poder instalar el .deb. En ese caso basta con bajarnos el binario deb y extraerlo con dpkg.

# dpkg -x http://raspbian.raspberrypi.org/raspbian/pool/main/r/reptyr/reptyr_0.6.2-1_armhf.deb .
# cd ./usr/bin