Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren
Aus znilwiki
Changelog:
- 25.08.2024 erste Version
Vorwort
Ich betreibe diverse Ubuntu-Server, dank Virtualisierung für jedes Thema (Seafile, Nextcloud, Zabbix, Homepage usw.) einen eigenen.
Updates spiele ich in der Regel mit dem folgenden Einzeiler ein (je nach Benutzer mit sudo
davor):
apt update && apt upgrade -y && apt autoremove -y
Das Problem ist bei manchen meiner Server das Ubuntu neuerdings (so ab 22.04) dann auch ggf. entsprechende Dienste neu startet: Dienste werden neu gestartet...
systemctl restart apache2.service cron.service fwupd.service mariadb.service open-vm-tools.service packagekit.service polkit.service rsyslog.service snmptrapd.service snmptt.service udisks2.service upower.service vgauth.service zabbix-agent2.service zabbix-web-service.service Dienste deren Neustart verschoben wurde: systemctl restart ModemManager.service /etc/needrestart/restart.d/dbus.service systemctl restart getty@tty1.service systemctl restart systemd-logind.service
An sich kein Problem - aber dann doch weil hierbei die Reihenfolge gerne Suboptimal ist. Beispielsweise auf meinem Zabbix Server startet der gerne MariaDB durch obwohl der Zabbix-Server noch läuft. Wenn ich dran denke beende ich den Server vorher, wenn ich es vergesse hängt er gerne beim Neustarten.
Automatischen Neustart verhindern
Wir bearbeiten folgende Datei:
/etc/needrestart/needrestart.conf
und suchen nach folgenden Zeilen
# Restart mode: (l)ist only, (i)nteractive or (a)utomatically.
#
# ATTENTION: If needrestart is configured to run in interactive mode but is run
# non-interactive (i.e. unattended-upgrades) it will fallback to list only mode.
#
# UBUNTU: the default restart mode when running as part of the APT hook is 'a',
# unless a specific UI is configured (see below).
#$nrconf{restart} = 'i';
Bei der letzten Zeile entfernen wir das Kommentarzeichen davor und machen aus dem i
ein l
, wie es auch in der Obersten Zeile beschrieben wird:
$nrconf{restart} = 'l';
So werden notwendige Neustarts nur aufgelistet.
Ergebnis
Nun werden bei einem Update nur die Dienste aufgeführt die einen Neustart bräuchten:
Dienste, die neu gestartet werden müssen:
systemctl restart apache2.service
systemctl restart fail2ban.service
systemctl restart fwupd.service
systemctl restart mariadb.service
systemctl restart packagekit.service
systemctl restart php5.6-fpm.service
systemctl restart php7.0-fpm.service
systemctl restart php7.1-fpm.service
systemctl restart php7.2-fpm.service
systemctl restart php7.3-fpm.service
systemctl restart php7.4-fpm.service
systemctl restart php8.0-fpm.service
systemctl restart php8.1-fpm.service
systemctl restart php8.2-fpm.service
systemctl restart php8.3-fpm.service
systemctl restart polkit.service
systemctl restart postfix@-.service
systemctl restart rpcbind.service
systemctl restart rsyslog.service
systemctl restart systemd-journald.service
/etc/needrestart/restart.d/systemd-manager
systemctl restart systemd-networkd.service
systemctl restart systemd-resolved.service
systemctl restart systemd-timesyncd.service
systemctl restart systemd-udevd.service
systemctl restart udisks2.service
systemctl restart veeamservice.service
systemctl restart zabbix-agent2.service
Dienste deren Neustart verschoben wurde:
systemctl restart ModemManager.service
systemctl restart NetworkManager.service
/etc/needrestart/restart.d/dbus.service
systemctl restart networkd-dispatcher.service
systemctl restart systemd-logind.service
systemctl restart unattended-upgrades.service
systemctl restart wpa_supplicant.service
Es müssen keine Container neu gestartet werden.