Systemd
Version vom 3. August 2011, 09:18 Uhr von Pascal (Diskussion | Beiträge) (→Verfügbarkeit (08/2011))
systemd ist ein Ersatz für den System V init Daemon in Linux.
Besonderheiten
- 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.
Verfügbarkeit (08/2011)
Distribution | Status |
---|---|
Fedora | Ursprünglich geplant für Fedora 14 ist es nun seit Fedora 15 Standard |
openSUSE | Wurde für openSUSE 11.4 in erwägung gezogen, jedoch verschoben |
Mandriva | Wird in Mandriva 2011 systemd übernehmen (Mandriva 2011 RC1 mit systemd verfügbar) |
Debian | Pakete in unstable |
Gentoo | Unterstüzt systemd und verfügbar in testing |
paldo | Übernahm systemd und Standard seit Aprill 2011 |
Arch | Community Pakete. |
systemd wurde als externe Abhängigkeit für GNOME 3.2 vorgeschlagen.
Administration
Runlevel / Targets
SystemVinit Runlevel | Systemd Target | Kommentar |
---|---|---|
0 | runlevel0.target, poweroff.target | System herunterfahren |
1, s, single | runlevel1.target, rescue.target | Einzelnuzer Modus |
2, 4 | runlevel2.target, runlevel4.target, multi-user.target | Benuzerdefiniert, Standardmäsig identisch zu 3 |
3 | runlevel3.target, multi-user.target | Multi-user, Shell. Anmeldung über mehrere Consolen und7oder netzwerk |
5 | runlevel5.target, graphical.target | Multi-user, Grafisch. Gewöhnlich alle Dienste aus 3 sowie grafische Oberfläche |
6 | runlevel6.target, reboot.target | Reboot |
emergency | emergency.target | Notfall Shell |
FAQ
- Wie setze ich das Runlevel beim Booten?
- Unter systemd werden Runlevel als Targets bezeichnet. Um das Boot "Target" beim Booten zu setzen hängt man z.B. einen der folgenden Kernel Parameter an.
systemd.unit=multi-user.target
(entspricht Runlevel 3)systemd.unit=rescue.target
(entspricht Runlevel 1)
- Wie setze ich das Standard Target?
- Für Runlevel 3
# systemctl -f enable multi-user.target
- Für Runlevel 5
# systemctl -f enable graphical.target