Aktionen

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.

Quellen


Kommentare

Loading comments...