Ein neues Feature von Systemd 230 stößt einigen Admins auf: Beim Ausloggen eines Users killt das Initsystem sämtliche Prozesse, die zur User Session Scope Unit gehören.
Die Systemd-Entwickler haben die Option “KillUserProcesses=” in der neuen Version von Systemd 230 standardmäßig von “no” auf “yes” gesetzt. Das Problem ist, dass zahlreiche User Nohup, Screen, Tmux oder Wget benutzen. Die sind nicht-interaktiv konzipiert, was bedeutet, dass diese Prozesse auch dann weiterlaufen, wenn der User sich vom System abmeldet. Das ist etwa hilfreich, wenn der Admin sich auf einem entfernten System anmeldet, dort einen Prozess startet und sich dann wieder abmeldet.
In einigen Fällen stört dieses Verhalten aber auch, etwa auf Systemen, an denen mehrere User arbeiten. Die nach dem Abmelden noch laufenden Prozesse kommen anderen Nutzern in die Quere. In diesen Fällen hilft das neue Verhalten von Systemd, zumal es an anderer Stelle Möglichkeiten gibt, langfristig laufende Prozesse weiterhin zu betreiben. So lässt sich Screen etwa mit
systemd-run --scope --user screen
weiterhin betreiben, weil es dann außerhalb der User Session läuft. Daneben gibt es die Möglichkeit, “KillUserProcess” in der “logind.conf” auf “no” zu setzen oder einen Dienst über “enable linger” von der Session auszunehmen. Es gibt also mehrere Möglichkeiten, das Weiterleben langlebiger Prozesse zu gewährleisten.
Doch, so eine weitere Kritik, nicht alle Admins bekommen solche einschneidenden Änderungen mit, die gegen das erwartete Verhalten verstoßen. Sie wundern sich dann, warum Tmux, Wget, Screen oder Nohup auf ihren Systemen nicht mehr funktionieren oder warum bestimmte Tools oder Bashskripte, die jene Werkzeuge verwenden, plötzlich den Geist aufgeben. Dagegen ließe sich allerdings einwenden, dass nicht viele Admins gleich auf die neue Version von Systemd wechseln. Tun sie es im Zuge eines Systemupdates dennoch, dürften die meisten Distributionen bereits auf die Neuerung reagiert haben.





