ubuntuusers.de

Notwendigkeit des Neustarts ermitteln

Hinweis:

Dieses Howto wurde von noisefloor erstellt. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich gegebenenfalls zusätzlich an den/die Verfasser des Howtos.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Problembeschreibung

Betreibt man einen Rechner im 24/7 Dauereinsatz und hat den Rechner so eingerichtet / konfiguriert, dass Paketupdates automatisch heruntergeladen und installiert werden, muss man trotzdem periodisch prüfen, ob der Rechner nicht einen Neustart benötigt, um die neueren Programmversionen auch zu nutzen (wie z.B. einen aktualisierten Kernel, dbus oder den NetworkManager).

Anleitung

Um festzustellen, ob das System einen Neustart nach der Aktualisierung von Paketen benötigt, prüft man einfach, ob die Datei reboot-required im Verzeichnis /var/run vorhanden ist. Dies kann man manuell über ls machen. Wer die Abfrage in einem Shellskript machen möchte, kann dies wie folgt umsetzen:

1
2
3
4
5
6
7
...
if [ -f /var/run/reboot-required ]
then 
    #hier Befehle einfügen etc., Beispiel:
    echo "$USER, bitte das System neu starten!"
fi
...

Der Inhalt der Datei /var/run/reboot-required lautet immer "*** System restart required ***".

Wer wissen möchte, welches Paket bzw. welche Pakete den Neustart verlangen, der kann sich den Inhalt der Datei /var/run/reboot-required.pkgs ausgeben lassen. Man erhält die Auflistung aller Pakete, die den Neustart benötigen. Beispielausgabe:

libc6
dbus
dbus
network-manager
linux-image-5.15.0-41-generic
linux-base

Technisch funktioniert das Anlegen der beiden Datei so, dass das postinst Skript des Pakets (welches nach erfolgreicher Installation des Programms bzw. der Dateien) die Datei /usr/share/update-nofier/notify-reboot-required aufruft, die dann die beiden Dateien anlegt und den Namen des Pakets in die .pkgs Datei schreibt.

Neustart von Programmen

Im Verzeichnis /var/run können auch noch von weiteren Programmen, die über die Paketverwaltung installiert sind und die einen Neustart des Programms (und nicht des Systems) benötigen, entsprechende Dateien liegen. Z.B. im Falle des Webbrowsers Firefox die Datei firefox-restart-required. Es existieren keine Dateien für Pakete, die als snap installiert sind.

E-Mail-Benachrichtigung

Man kann sich auf Basis dieser Anleitung auch einen automatischen Benachrichtigungsdienst per E-Mail einrichten. Hierfür eine Datei im gewünschten Anacron-Verzeichnis anlegen. Empfohlen wird das Verzeichnis /etc/cron.daily, wodurch einmal täglich gecheckt wird, ob ein Neustart ansteht. Voraussetzung ist, dass das System Mails verschicken kann, zum Beispiel per Postfix.

1
2
3
4
5
#!/usr/bin/env bash

if [ -f /var/run/reboot-required ]; then
	echo "Ein Neustart für Deinen Server $HOSTNAME ist erforderlich!" | mail -s "Reboot erforderlich" EMPFÄNGER@EXAMPLE.COM
fi

Anstatt EMPFÄNGER@EXAMPLE.COM bitte die Email-Adresse angeben, an die die Benachrichtigung gehen soll.

Diese Revision wurde am 3. Oktober 2022 20:54 von karzer erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Howto