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:
nano /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.
Alternative
Alternativ könnte man needrestart auch einfach deinstallieren, dann gibt es aber auch keine Meldungen mehr. So war es "früher", so bis Ubuntu 20.04:
sudo apt remove needrestart sudo apt purge needrestart