"Se requiere reiniciar el sistema" ... ¿por qué? ¿Cómo puedo obtener lo que activó esta notificación para mostrar también los detalles?

26

De vez en cuando, voy a SSH en una caja con actualizaciones desatendidas y me saludarán con "** Se requiere reiniciar el sistema ***" sin información adicional.

Mi archivo '/var/run/reboot-required.pkgs' contiene:

linux-image-3.13.0-61-generic
linux-base
linux-base
linux-base

No me importa reiniciar, pero no me gusta reiniciar sin tener detalles de POR QUÉ debo reiniciar en primer lugar. Arriba, veo dos paquetes que activaron el mensaje, pero no hay explicación más allá de eso.

¿Hay alguna manera de obtener detalles adicionales sobre el motivo por el que el reinicio también se muestra en el inicio de sesión SSH?

Idealmente, me gustaría extraer un archivo que contenga algo legible para humanos, como "El paquete xyz se actualizó en [fecha / hora]. Necesitaba modificar los archivos a, byc, pero no pudo porque el sistema bloqueó / bloquear la acción. Durante el próximo reinicio, los archivos a, byc serán reemplazados ". Pero algo que no es completamente legible para los humanos probablemente también esté bien.

E. Diaz
fuente
En mi opinión, parece obvio: el kernel se actualizó y no puede reemplazarse en vivo (al menos, todavía no).
muru
66
Por supuesto, es obvio para usted, pero solo porque fui a cavar y busqué todo para poder demostrar lo que quiero. NO es obvio tan pronto como SSH en la caja. Mostrar la lista de paquetes que requiere un reinicio también es insuficiente. Quiero saber en qué fecha y hora se actualizó ese paquete y una razón legible por humanos que explica por qué el paquete desea reiniciar. Si su tostadora desea reiniciar, querrá saber por qué. Entonces, ¿por qué no exigir tanto, si no más, de un sistema operativo altamente complejo?
E. Díaz
¿Porque soy un idiota? Siéntase libre de editar si cree que la pregunta necesita aclaración.
E. Díaz

Respuestas:

24

Editar: Otro, probablemente relevante o útil artículo .

Como ya descubrió, puede encontrar los paquetes que requieren reiniciar en /var/run/reboot-required.pkgs

Ahora solo necesita buscar en el registro de cambios del paquete para encontrar la información que está buscando.

  • Si ya está en la máquina, puede encontrar los registros de cambios en /usr/share/doc/${package_name}(ejemplo :) zless /usr/share/doc/linux-image-3.13.0-61-generic/changelog.Debian.gz.
  • Debian proporciona algunas herramientas apt-listchangespara hacer esto más conveniente ( 1 , 2 , 3 ).
  • Otra forma de hacerlo sería usar packages.ubuntu.com .

    En tu caso:

    imagen que muestra dónde encontrar el enlace para el registro de cambios en packages.ubuntu.com

LiveWireBT
fuente
5

El archivo finalmente llamado es /usr/lib/update-notifier/update-motd-reboot-required(es llamado por /etc/update-motd.d/98-reboot-required).

Dentro de la declaración condicional if de uno de esos archivos, simplemente agregue esto:

    echo "Packages causing reboot:"
    cat /var/run/reboot-required.pkgs

Entonces, por ejemplo, su /usr/lib/update-notifier/update-motd-reboot-requiredarchivo se vería así:

#!/bin/sh -e
#
# helper for update-motd

if [ -f /var/run/reboot-required ]; then
        cat /var/run/reboot-required
        echo "Packages causing reboot:"
        cat /var/run/reboot-required.pkgs
fi
Berto
fuente