Nach einem Kernelupdate sollte der Server neu starten, viele Prozesse starten nach einem Update der Bibliotheken, welche dahinter stehen, leider nicht neu. Das Programm checkrestart hilft diese aufzuspüren und mit einer Einbindung in die debianeigenen Updateprozesse wird dies auch gleich gemeldet.
In dem Paket debian-goodies sind einige kleine Helfer für den Administrator eines Debiansystemes versteckt. Für mich ist es seit dem erscheinen in Wheeyz eine Grundlage meiner Installationen, da ich via checkrestart sehe welche Dienste noch alte Versionen von Bibliotheken oder Konfigurationen nutzen. Nicht immer werden Dienste nach einem Update neu gestartet und für den Server kann es in der Zukunft unangenehme Folgen haben.
Die Ausführung von Checkrestart vor einem Neustart der Dienste auf einem Server mit Debian Jessie:
# checkrestart Found 29 processes using old versions of upgraded files (18 distinct programs) (16 distinct packages) Of these, 10 seem to contain init scripts which can be used to restart them: The following packages seem to have init scripts that could be used to restart them: clamav-daemon: 620 /usr/sbin/clamd openssh-server: 20792 /usr/sbin/sshd dbus: 599 /usr/bin/dbus-daemon udev: 187 /lib/systemd/systemd-udevd cron: 592 /usr/sbin/cron fail2ban: 888 /usr/bin/fail2ban-server rsyslog: 618 /usr/sbin/rsyslogd clamav-freshclam: 589 /usr/bin/freshclam irqbalance: 632 /usr/sbin/irqbalance apache2-bin: 27679 /usr/sbin/apache2 27666 /usr/sbin/apache2 27667 /usr/sbin/apache2 27665 /usr/sbin/apache2 26744 /usr/sbin/apache2 27325 /usr/sbin/apache2 861 /usr/sbin/apache2 27340 /usr/sbin/apache2 27343 /usr/sbin/apache2 27342 /usr/sbin/apache2 27346 /usr/sbin/apache2 These are the init scripts: service clamav-daemon restart service ssh restart service dbus restart service udev-finish restart service udev restart service cron restart service fail2ban restart service rsyslog restart service clamav-freshclam restart service irqbalance restart service apache2 restart These processes do not seem to have an associated init script to restart them: php5-cli: 11732 /usr/bin/php5 systemd: 1 /lib/systemd/systemd 185 /lib/systemd/systemd-journald 594 /lib/systemd/systemd-logind mariadb-server-core-10.0: 823 /usr/sbin/mysqld bsdutils: 661 /usr/bin/logger 824 /usr/bin/logger bash: 660 /bin/bash
Nachdem ich die Dineste neu gestartet hatte ist die Ausgabe nun kürzer:
# checkrestart Found 9 processes using old versions of upgraded files (8 distinct programs) (6 distinct packages) These processes do not seem to have an associated init script to restart them: php5-cli: 11732 /usr/bin/php5 systemd: 185 /lib/systemd/systemd-journald 1 /lib/systemd/systemd 594 /lib/systemd/systemd-logind mariadb-server-core-10.0: 823 /usr/sbin/mysqld bsdutils: 661 /usr/bin/logger 824 /usr/bin/logger bash: 660 /bin/bash
Die Anleitung um checkrestart in dem Updateprozess via apt mit einzubinden findet man in meinem Artikel Debian Wenn rkhunter nach einem Update zickt aus dem Jahre 2010. Sie gilt immer noch, Debian ist da stabil ;)
Auch kann ein eigenes Script verfasst werden um die Ausgabe von checkrestart weiter zu verarbeiten und dann bestimmte Dienste automatisch neu starten zu lassen. Ich habe bis dato davon abgesehen.
Was machst du dann mit den Prozessen ohne systemd-Unit-Files oder init-Skripten? Einfach killen? Würde mich mal interessieren. ;-)
Wenn sie keine Scripte besitzen, dann schreibe ich welche.
Welche Prozesse sollen denn laufen, welche ich nicht neu starten kann und ein kill -HUP kann auch wunder wirken ;)
Ich bin schon länger auf needrestart umgestiegen: https://blog.mdosch.de/2015/02/07/kurztipp-needrestart/