„Neustart des Systems erforderlich“… warum? Wie kann ich herausfinden, was diese Benachrichtigung ausgelöst hat, um auch Details anzuzeigen?

26

Ab und zu werde ich SSH in eine Box mit unbeaufsichtigten Upgrades schicken und mit "** Systemneustart erforderlich ***" ohne zusätzliche Informationen begrüßt.

Meine Datei '/var/run/reboot-required.pkgs' enthält:

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

Es macht mir nichts aus, neu zu starten, aber ich mag es nicht, neu zu starten, ohne Details darüber zu haben, WARUM ich überhaupt neu starten sollte. Oben sehe ich zwei Pakete, die die Nachricht ausgelöst haben, aber darüber hinaus gibt es keine Erklärung.

Gibt es eine Möglichkeit, zusätzliche Details zum Grund für den Neustart zu erhalten, der auch bei der SSH-Anmeldung angezeigt wird?

Im Idealfall möchte ich eine Datei einfügen, die etwas für Menschen lesbares enthält, wie "Paket xyz wurde um [Datum / Uhrzeit] aktualisiert. Es musste die Dateien a, b und c ändern, konnte aber nicht, weil das System blockierte / würde blockieren Sie die Aktion. Beim nächsten Neustart werden die Dateien a, b und c ersetzt. " Aber etwas, das nicht vollständig für Menschen lesbar ist, ist wahrscheinlich auch in Ordnung.

E. Diaz
quelle
IMO scheint es offensichtlich: Der Kernel wurde aktualisiert und kann sich nicht selbst live ersetzen (zumindest noch nicht).
muru
6
Natürlich ist es für Sie offensichtlich, aber nur, weil ich mich umgegraben und alles nachgeschlagen habe, um zu demonstrieren, was ich will. Es ist NICHT ersichtlich, sobald ich in die Box SSH. Das Anzeigen der Paketliste, die einen Neustart erfordert, ist ebenfalls unzureichend. Ich möchte wissen, an welchem ​​Datum und zu welcher Uhrzeit das Paket aktualisiert wurde und aus welchem ​​Grund das Paket neu gestartet werden soll. Wenn Ihr Toaster einen Neustart wünschte, möchten Sie wissen, warum. Warum also nicht genauso viel, wenn nicht sogar mehr von einem hochkomplexen Betriebssystem verlangen?
E. Diaz
Weil ich ein Idiot bin? Fühlen Sie sich frei zu bearbeiten, wenn Sie denken, die Frage muss geklärt werden.
E. Diaz

Antworten:

24

Edit: Ein weiterer, wahrscheinlich relevanter oder nützlicher Artikel .

Wie Sie bereits herausgefunden haben, finden Sie in die Pakete, die einen Neustart erfordern /var/run/reboot-required.pkgs

Jetzt müssen Sie nur noch im Changelog des Pakets nachsehen, um die gesuchten Informationen zu finden.

  • Wenn Sie bereits auf der Maschine sind, finden Sie die Änderungsprotokolle in /usr/share/doc/${package_name}(Beispiel :) zless /usr/share/doc/linux-image-3.13.0-61-generic/changelog.Debian.gz.
  • Debian bietet einige Werkzeuge apt-listchanges, um dies bequemer zu machen ( 1 , 2 , 3 ).
  • Eine andere Möglichkeit wäre die Verwendung von packages.ubuntu.com .

    In Ihrem Fall:

    Bild zeigt, wo der Link für das Changelog auf packages.ubuntu.com zu finden ist

LiveWireBT
quelle
5

Die Datei, die letztendlich aufgerufen wird, ist /usr/lib/update-notifier/update-motd-reboot-required(sie wird von aufgerufen /etc/update-motd.d/98-reboot-required).

Fügen Sie in der bedingten if-Anweisung einer dieser Dateien einfach Folgendes hinzu:

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

So /usr/lib/update-notifier/update-motd-reboot-requiredwürde Ihre Datei beispielsweise so aussehen:

#!/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
quelle