Das Paket needrestart hat sich bei mir bei der Aktualisierung von Paketen als hilfreich erwiesen. Das Paket klinkt sich bei apt ein und meldet nach der Aktualisierung von Paketen, welche Programme neugestartet werden müssen, weil sich Bibliotheken geändert haben, oder dass das System neugestartet werden muss, weil der Kernel aktualisiert wurde.

Needrestart ermittelt die Prozesse, die neugestartet werden müssen und präsentiert diese als Auswahl, so dass man nur noch bestätigen braucht und die entsprechenden Dienste werden neugestartet. Dies funktioniert jedoch nicht für alle Dienste, weshalb needrestart am Ende noch eine Liste der Prozesse ausgibt, die neugestartet werden müssen.

Für die graphische Oberfläche gibt es das Paket needrestart-session, welches das Benachrichtigungssystem nutzt, um auf die notwendigen Neustarts hinzuweisen.

Hintergrund

Mit der Installation einer neuen Version einer Bibliothek oder eines Programms, werden nur die Dateien im Dateisystem verändert. Alle Prozesse, die zuvor gestartet wurden, verwenden weiterhin die alte Datei aus dem Dateisystem und sind daher noch fehlerhaft (ggf. Sicherheitslücken) oder kennen noch nicht die neuen Funktionen. Über die Paketverwaltung kann diese Aufgabe nicht abgedeckt werden, da die Pakete für die Dienste nichts von der Aktualisierung der Bibliotheken erfahren und die Pakete der Bibliotheken wiederum nicht wissen, welche Programme diese nutzen, geschweige denn wie diese neu zu starten sind.

Alternativen

Weiterhin verwende ich auch noch checkrestart aus debian-goodies, aber needrestart ist besser integriert und über die Dialogauswahl ist die Arbeit damit auch schneller erledigt.

Alle Prozesse zeigen die Programme jedoch nicht an, da sie zum Beispiel nicht auf /usr/share/mime/mime.cache und /usr/share/icons/hicolor/icon-theme.cache achten, wodurch aber oft das Umschalten meines Dateisystems auf schreibgeschützt fehlschlägt. Hierfür verwende ich noch den Befehl:

{lsof +aL1 +f -- /; lsof +f -- / |grep 'DEL\|(path '}

Für Debian gibt es noch das Paket whatmaps, aber dieses habe ich noch nicht genutzt. Unter CentOS/RHEL gibt es needs-restarting, unter Fedora nennt sich das Tool tracer. Eine Übersicht der Programme gibt es als Kommentar dieses Blogs.