Windows und macOS verbinden Updates nahezu immer mit einem erzwungenen Neustart. Linux-Enthusiasten verweisen darauf immer mit viel Häme in den entsprechenden Diskussionskanälen und behaupten, Linux benötige das nicht. Wirklich nicht?
Rund um Linux haben sich im Laufe der Jahre viele Mythen und Halbwahrheiten angesammelt. Liebevoll weitergetragen von einer Fangemeinde und selten hinterfragt. Eines davon ist: Linux braucht keine Neustarts.
Das war bezogen auf den Kernel natürlich schon immer Quatsch. Sammelthemen in Foren, in denen sich Administratoren mit der Laufzeit ihrer Systeme brüsteten, sind somit eher Hitlisten der Inkompetenz. Zwar gibt es im Enterprise-Segment inzwischen Werkzeuge, um den Kernel mittels sogenanntem Live Patching ohne Neustart zu patchen, aber das sind keine Lösungen für Privatanwender oder kleine Firmen.
Das Problem besteht aber auch außerhalb des Kernels. OpenSUSE bietet für seine Paketverwaltung zypper einen schönen Befehl, der zeigt, welche Prozesse neu gestartet werden sollten, da diese auf veralteten Dateien basieren.
# zypper ps -s
Code-Sprache: PHP (php)
Heute morgen gab es unter anderem ein Update von glibc. Die Ausgabe sieht wie folgt aus:
Die folgenden aktiven Prozesse verwenden gelöschte Dateien:
PID | PPID | UID | User | Command | Service
------+------+------+----------+-----------------------------------+-----------------
1241 | 1 | 0 | root | irqbalance | irqbalance
1247 | 1 | 472 | polkitd | polkitd | polkit
1333 | 1 | 0 | root | ModemManager | ModemManager
1334 | 1 | 0 | root | python3.8 | firewalld
1466 | 1 | 0 | root | NetworkManager | NetworkManager
1700 | 1 | 0 | root | iio-sensor-proxy | iio-sensor-proxy
1709 | 1 | 0 | root | sddm | display-manager
1710 | 1 | 0 | root | boltd | bolt
1756 | 1709 | 0 | root | Xorg.bin | display-manager
1850 | 1 | 0 | root | bluetoothd | bluetooth
2347 | 1709 | 0 | root | sddm-helper |
2356 | 2347 | 1000 | gerrit | startplasma-wayland |
2378 | 2377 | 1000 | gerrit | kwin_wayland |
2400 | 1 | 1000 | gerrit | startplasma-waylandsession |
2423 | 1 | 1000 | gerrit | kdeinit5 |
2425 | 2423 | 1000 | gerrit | klauncher |
2434 | 1 | 1000 | gerrit | kded5 |
2437 | 1 | 1000 | gerrit | ksmserver |
2445 | 1 | 1000 | gerrit | polkit-kde-authentication-agent-1 |
2447 | 1 | 1000 | gerrit | org_kde_powerdevil |
2449 | 1 | 1000 | gerrit | xembedsniproxy |
2451 | 1 | 1000 | gerrit | baloo_file |
2453 | 1 | 1000 | gerrit | kaccess |
2455 | 1 | 1000 | gerrit | plasmashell |
2462 | 1 | 0 | root | udisksd | udisks2
2463 | 2349 | 1000 | gerrit | kactivitymanagerd |
2465 | 2349 | 1000 | gerrit | dconf-service |
2470 | 1 | 1000 | gerrit | kdeconnectd |
2474 | 1 | 1000 | gerrit | gmenudbusmenuproxy |
2491 | 1 | 1000 | gerrit | yakuake |
2503 | 1 | 1000 | gerrit | korgac |
2506 | 1 | 0 | root | upowerd | upower
2621 | 1 | 1000 | gerrit | akonadi_control |
2636 | 2621 | 1000 | gerrit | akonadiserver |
2648 | 2349 | 1000 | gerrit | obexd |
2651 | 2349 | 1000 | gerrit | kwalletd5 |
2685 | 2621 | 1000 | gerrit | akonadi_archivemail_agent |
2686 | 2621 | 1000 | gerrit | akonadi_birthdays_resource |
2687 | 2621 | 1000 | gerrit | akonadi_davgroupware_resource |
2688 | 2621 | 1000 | gerrit | akonadi_followupreminder_agent |
2689 | 2621 | 1000 | gerrit | akonadi_imap_resource |
2690 | 2621 | 1000 | gerrit | akonadi_imap_resource |
2691 | 2621 | 1000 | gerrit | akonadi_imap_resource |
2692 | 2621 | 1000 | gerrit | akonadi_indexing_agent |
2693 | 2621 | 1000 | gerrit | akonadi_maildir_resource |
2694 | 2621 | 1000 | gerrit | akonadi_maildispatcher_agent |
2695 | 2621 | 1000 | gerrit | akonadi_mailfilter_agent |
2696 | 2621 | 1000 | gerrit | akonadi_mailmerge_agent |
2697 | 2621 | 1000 | gerrit | akonadi_migration_agent |
2698 | 2621 | 1000 | gerrit | akonadi_newmailnotifier_agent |
2699 | 2621 | 1000 | gerrit | akonadi_sendlater_agent |
2702 | 2621 | 1000 | gerrit | akonadi_unifiedmailbox_agent |
2964 | 2349 | 1000 | gerrit | kiod5 |
3175 | 1 | 1000 | gerrit | cloud-drive-ui |
3180 | 2455 | 1000 | gerrit | kmail |
3195 | 2455 | 1000 | gerrit | akregator |
3222 | 3180 | 1000 | gerrit | QtWebEngineProcess |
3223 | 3180 | 1000 | gerrit | QtWebEngineProcess |
3225 | 3223 | 1000 | gerrit | QtWebEngineProcess |
3245 | 3195 | 1000 | gerrit | QtWebEngineProcess |
3246 | 3195 | 1000 | gerrit | QtWebEngineProcess |
3248 | 3246 | 1000 | gerrit | QtWebEngineProcess |
3287 | 3180 | 1000 | gerrit | QtWebEngineProcess |
3288 | 3225 | 1000 | gerrit | QtWebEngineProcess |
3343 | 3195 | 1000 | gerrit | QtWebEngineProcess |
3347 | 3248 | 1000 | gerrit | QtWebEngineProcess |
3412 | 1 | 1000 | gerrit | kio_http_cache_cleaner |
3506 | 2423 | 1000 | gerrit | kdeinit5 |
3507 | 2423 | 1000 | gerrit | kdeinit5 |
3537 | 3195 | 1000 | gerrit | QtWebEngineProcess |
3634 | 2349 | 1000 | gerrit | baloorunner |
3825 | 2349 | 1000 | gerrit | at-spi-bus-launcher |
4263 | 2455 | 1000 | gerrit | keepassxc |
4645 | 2423 | 1000 | gerrit | kdeinit5 |
4646 | 2423 | 1000 | gerrit | kdeinit5 |
4648 | 2423 | 1000 | gerrit | kdeinit5 |
4651 | 2423 | 1000 | gerrit | kdeinit5 |
4653 | 2423 | 1000 | gerrit | kdeinit5 |
4655 | 2423 | 1000 | gerrit | kdeinit5 |
4674 | 2423 | 1000 | gerrit | kdeinit5 |
4684 | 2423 | 1000 | gerrit | kdeinit5 |
4844 | 2455 | 1000 | gerrit | firefox |
4943 | 4844 | 1000 | gerrit | firefox |
5003 | 4844 | 1000 | gerrit | firefox |
5070 | 4844 | 1000 | gerrit | kmozillahelper |
5095 | 4844 | 1000 | gerrit | plasma-browser-integration-host |
5096 | 4844 | 1000 | gerrit | keepassxc-proxy |
5099 | 4844 | 1000 | gerrit | firefox |
5153 | 4844 | 1000 | gerrit | firefox |
32464 | 2423 | 1000 | gerrit | kdeinit5 |
32470 | 2423 | 1000 | gerrit | kdeinit5 |
Diese Prozesse sollten neu gestartet werden.
Informationen über die Bedeutung der Werte in der obigen Tabelle finden Sie unter 'man zypper'.
Keine Core-Bibliotheken oder Dienste wurden aktualisiert.
Ein Neustart ist wahrscheinlich nicht notwendig.
Code-Sprache: PHP (php)
Der Befehl sagt natürlich selbst, dass ein Neustart nicht zwingend ist, aber die Liste umfasst meinen kompletten Desktop plus noch ein bisschen mehr. Ich müsste mich also mindestens einmal abmelden und wieder anmelden, um den Displayserver neu zu starten. Bei einem halbwegs modernen System mit SSD ist ein kompletter Neustart vermutlich sogar schneller.
In vielen Fällen führen fehlende Neustarts auch zu Fehlern. Gerade bei Versionssprüngen von Desktopumgebungen. Die Supportforen sind voll von Leuten, die ihre Probleme mit einem simplen Neustart lösen konnten.
Es ist deshalb nachvollziehbar, dass GNOME seit längerem versucht Updates mit einem Neustart zu verbinden.
Linux folgt damit auf dem Desktop endlich Windows und macOS. Weil es sinnvoller ist und viele Probleme vermeidet. Wer glaubt das selbst entscheiden zu können, kann es natürlich wie immer abschalten – es ist ja Linux.
Linux braucht keine Neustarts? Doch brauchen schon, es erzwingt sie nur nicht.
KDE arbeitet ja auch ein einer dementsprechenden Lösung: “Offline Updates”
Die eigentliche Ursache der Unbeliebtheit von Neustarts ist, dass man dann manuell die meisten Programme starten, Dateien öffnen und die Fenster sortieren muss, was viel länger als der Neustart dauert. Praktisch war Linux da tatsächlich “überlegen”, da man ja einfach nie mehr neustartete (und viele installierte Programmupdates nicht wirklich angewendet wurden. Bei der Geschwindigkeit von SSDs wäre ein erzwungener (evt. unmittelbarer) Neustart total belanglos, wenn dem Nutzer der Zustand des Desktops (geöffnete Programme, Dateien und Fensterpositionen) und der Zustand der Anwendungen wiederhergestellt würde. Selbst Windows Explorer kann das, Nautilus aber nicht.
Klar ist das zum Teil Verantwortlichkeit der Programme (IDEs laden üblicherweise ihren Anwendungszustand), aber anstatt eine unzuverlässige Implementierung aus dem Desktop zu entfernen (Gnome 2), hätte man das über FreeDesktop Standards und APIs vereinheitlichen und forcieren können.