Systemd Besonderheiten

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Abwärtskompatibilität zu SysVinit-Scripten
systemd ist abwärtskompatibel, jedoch werden Features benutzt, welche nur unter Linux verfügbar sind.
Somit ist er nur auf Systemen mit Linux-Kernel lauffähig.
Parallelisierung
Es werden möglichst viele Prozesse gleichzeitig beim Booten gestartet um das System optimal aus zulasten.
Abhängigkeits-Regeln
Um bei der Parallelisierung dennoch sicher zustellen dass Dienste welche von anderen Diensten benötigt werden rechtzeitig vor diesen zu starten. (z.B. D-Bus)
cgroups
Anstelle von ProzessIDs werden cgroups benutzt. Dies bedeutet, dass Dienste nicht mehr "Abhauen" können. Selbst durch doppeltes Forken.
Ereignis basiertes Starten von Diensten
Ähnlich inetd kann systemd Dienste bei Bedarf starten.
Dies kann z.B. über einen Socket oder Bus geschehen.
Binärscripte
Langfristig sollen Shell-Skripte komplett verschwinden und anstelle eines Init-Skripts jeder Dienst eine Konfigurationsdatei erhalten in welcher definiert wird wie dieser zu starten ist.
Kommandos
Bei Sys-V-init laufen Dienste immer im Hintergrund als Daemon. Bei Systemd wird erwartet, dass der Prozess hinter exec im Vordergrund läuft. Nur so lange der Prozess im Vordergrund durchgeführt wird betrachtet Systemd ihn auch als laufend. Endet der mit exec gestarter Prozess, so endet für Systemd auch der Service und dieses wartet nun darauf, dass wieder ein passendes Traget auftritt.
Prozesse beenden
Beim Stoppen eines Jobs kümmert sich Systemd ausschließlich um den per exec im Vordergrund gestarteten Prozess. Er sendet ein SIGTERM und erwartet, dass er sich selbst beendet. Falls er dies jedoch nicht tut wird er mittels SIGKILL einfach abgebrochen.