Systemd Besonderheiten
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.