Conexión SSH perdida durante la actualización del servidor - ¿Cómo reconectarse para procesar?

32

Entonces, estaba realizando una actualización de Ubuntu Server de 11.04 a 11.10.

Lo olvidé en segundo plano, y mi cliente SSH expiró y se desconectó (masilla en Windows, vaya). Lo último en mi terminal fue una pregunta sobre cómo mantener una configuración anterior, etc.

Cuando volví a iniciar sesión en el servidor, los archivos de aptitud fueron bloqueados por otro proceso, por lo que supongo que este proceso de actualización se encuentra allí esperando mi entrada.

¿Cómo puedo interactuar con este proceso y continuar con la actualización? Si es posible.

Gracias

Stephen Melrose
fuente

Respuestas:

36

El proceso realmente se ejecuta en una pantalla o sesión byobu como usuario root. vuelva a conectarse al servidor con masilla en el puerto 22 o al 1022 a prueba de fallas. sudo su - o su - en su cuenta raíz y reanude la pantalla con byobu o una pantalla -r y reanude donde lo dejó.

ah y sí, lo descubrí por las malas ;-)

usuario120896
fuente
1
Woah gracias! Realmente estaba ejecutando una actualización de lanzamiento de 11.10 a 12.04 en byobu y luego se cerró cuando se actualizó byobu, ¡pero pude volver a conectarme a la sesión de la pantalla raíz y ver cómo terminaba la actualización! Casi intenté matar a la fuerza la actualización, pero por suerte leí esta respuesta a tiempo.
Ibrahim
3
En una instalación estancada, decía que la pantalla ya estaba conectada, así que forcé la desconexión de la pantalla y pude volver a colocarla. El comando es pantalla -D Información desde aquí: kb.iu.edu/data/ahrm.html
David
1
El uso screen -r <id>también funciona, y solo necesita escribir algunos caracteres de la ID para que funcione.
Daniel
1
Esto no funciona para mí, ya que dice que screenno está instalado.
starbeamrainbowlabs
1
Uso más reciente de Ubuntu sudo screen -D -rdespués sudo su -(si no es root).
bshea
34

No puedes Encuentra el proceso de actualización haciendo

lsof /var/lib/dpkg/lock

Mátalo, arregla cualquier actualización interrumpida con

dpkg --configure --pending

y reinicie la actualización.

Osito de peluche
fuente
3
¿Es esto seguro con el proceso siendo un do-release-upgrade?
Stephen Melrose
1
@StephenMelrose Nunca es seguro. Pero es razonablemente seguro, y la única opción restante.
Teddy
2
La mejor respuesta entre muchos sobre cómo solucionar una actualización de apt-get abortado por el tiempo de espera de la sesión de masilla ... probado con éxito, ¡gracias!
Kojo
El and restart the upgradepaso no funciona en mi caso (perdí la sesión ssh durante do-release-upgrade14.04 -> 16.04). Lo que hago en cambio como último paso para finalizar la actualización de lanzamiento es sudo apt autoremovey luego sudo shutdown -r now.
Ruslan Stelmachenko
Encontré una respuesta más completa aquí que seguí, la actualización continuó automáticamente donde se quedó. askubuntu.com/questions/219545/…
lacostenycoder
4

El criopido (encontrado a través de esta pregunta ) podría ayudar a menos que el "proceso actual, no un árbol de procesos" sea un problema en este caso.

Los archivos pueden estar bloqueados porque el proceso se eliminó sin ceremonias y no tuvo la oportunidad de limpiarse después de sí mismo, así que confirme que aptitude todavía se está ejecutando. Úselo lsof /var/lib/dpkg/lockcomo se sugiere en la respuesta de Teddy para verificar: esto le indicará el pid para probar el criopido también.

En el futuro, recomiendo intentar ejecutar la pantalla siempre que sea posible. Me he acostumbrado a que la pantalla (o byobu, que es una envoltura alrededor de la pantalla que define algunos comportamientos útiles) sea lo primero que ejecuto cuando hago SSH en cualquier lugar, luego puedo volver a conectarme si hay problemas. Puede configurarlo para que se inicie o vuelva a conectar automáticamente, aunque nunca tuve la oportunidad de hacerlo en ningún lado; hay una serie de ejemplos en línea ( este, por ejemplo ) si desea probar eso.

David Spillett
fuente
1
Por cierto, me adelanté a esto e hice una actualización de lanzamiento de s sobre ssh usando byobu, pero cuando se actualizó byobu, ¡mató mi sesión! Me pregunto si usar la pantalla directamente hubiera evitado esto. Pero la otra respuesta a esta pregunta respondió mi situación, parece que el instalador es inteligente y ejecuta su propia sesión de pantalla de todos modos: D
Ibrahim