[[Vorlage(Howto, noisefloor)]] [[Vorlage(getestet, jammy, focal)]] = Problembeschreibung = [[Inhaltsverzeichnis()]] 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: {{{#!code bash ... 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 [:Cron/#Anacron-Anac-h-ronistic-Cron: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:]. {{{#!code bash #!/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. #tag: Howto, System