Artikel mit Tag prozesse

checkrestart vs. needrestart - alte Prozesse nach Paketupdates erkennen

Wie sich Linux Systeme aktualisieren lassen war auf ITrig bereits zu lesen. Doch nur mit Aktualisieren ist es nicht getan, hin und wieder sollten Prozesse neu gestartet werden deren Installationspakete aktualisiert wurden. Dazu bietet Ubuntu neben dem neuen Kernel Live Patching verschiedene Möglichkeiten.

checkrestart

Um Systeme auf anstehende Neustarts zu kontrollieren gibt es verschiedene Tools, eines altbekanntes ist checkrestart. Dieses ist im debian-goodies Paket enthalten.

Das Programm macht Nichts anderes als nach veralteten Libraries bei noch aktiven Prozessen zu suchen.

Findet es welche schlägt es den Neustart mit dem dazugehörigen Befehl vor.

sudo apt-get install debian-goodies
sudo checkrestart
Found 7 processes using old versions of upgraded files
(7 distinct programs)
(5 distinct packages)

Of these, 5 seem to contain systemd service definitions or init scripts which can be used to restart them.
The following packages seem to have definitions that could be used
to restart their services:
lvm2:
        447     /sbin/lvmetad
openssh-server:
        1160    /usr/sbin/sshd
dbus:
        863     /usr/bin/dbus-daemon
accountsservice:
        945     /usr/lib/accountsservice/accounts-daemon
policykit-1:
        1001    /usr/lib/policykit-1/polkitd

These are the systemd services:
systemctl restart accounts-daemon.service
systemctl restart polkitd.service

These are the initd scripts:
service lvm2-lvmpolld restart
service lvm2 restart
service lvm2-lvmetad restart
service ssh restart
service dbus restart

checkrestart

check-enhancements

Ebenfalls praktischer Teil des debian-goodies Pakets ist check-enhancements.

Damit lassen sich Erweiterungen für bereits installierte Pakete finden.

 

check-enhancements postgresql
postgresql => check-postgres:     Installed: (none)       Candidate: 2.24.0-3.pgdg18.04+1
postgresql => pgpool2:    Installed: (none)       Candidate: 3.7.5-2.pgdg18.04+1
postgresql => pgtop:      Installed: (none)       Candidate: 3.7.0-18-gbbf1f12-2.pgdg18.04+1

needrestart

Das debian-goodies Paket hat schon ein paar Jahre auf dem Buckel, daher gibt es inzwischen neuere Varianten, um anstehende Neustarts zu prüfen. 

Eines davon ist needrestart, es funktioniert ähnlich wie checkrestart, wird aber aktiv weiterentwickelt und unterstützt Docker oder LXC. Zusätzlich ist es nicht an Debian gebunden, sondern auch für andere Distributionen verfügbar.

Needrestart wird von Thomas Liske entwickelt und aktuell in der Version 3.1.x ausgeliefert. Es hat eine Unterstützung für systemd an Bord, läuft aber auch unter System V init.

sudo apt install needrestart
sudo needrestart
Scanning processes...
Scanning processor microcode...
Scanning linux images...

Running kernel seems to be up-to-date.

The processor microcode seems to be up-to-date.

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.

needrestart

Wie es sich für aktuelle Tools gehört, hat das Tool auch eine Nagios/CheckMK bzw. Icinga Ausgabe.

sudo needrestart -p -l
OK - Kernel: 4.15.0-36-generic, Microcode: CURRENT, Services: none, Containers: none, Sessions: none|Kernel=0;0;;0;2 Microcode=0;0;;0;1 Services=0;;0;0 Containers=0;;0;0 Sessions=0;0;;0

Konfiguration und Einstellungen können bei Bedarf unter /etc/needrestart/needrestart.conf vorgenommen werden.

Das Tool bietet ebenfalls einen interaktiven Modus. Nach einer Installation prüft das Tool nach jedem apt upgrade automatisch auf Neustarts von Prozessen und liestet diese auf, ohne sie neu zu starten.

needrestart-kernel


Bordmittel

Die einfachste Variante einen nötigen Neustart des Systems zu erkennen besteht im Auslesen des Wertes cat /var/run/reboot-required .

Den Wert *** System restart required *** zeigt Ubuntu im Loginprompt an, wenn ihr über einen SSH Konsole zugreift.

Werden auch die betroffenen Pakete benötigt kann in /var/run/reboot-required.pkgs geschaut werden

cat /var/run/reboot-required                                                                                                                                                                            *** System restart required ***
cat /var/run/reboot-required.pkgs