SystemD¶
(Reference Manual Chapter: The systemd Daemon)
Die SysVinit-Technik wird durch systemd-Technik ersetzt bei Beibehaltung der alten (abwärtskompatiblen) init-Skript-Techniken und Ordnerstrukturen nach SysVinit.
Dadurch werden die Start-/Stoppmechanismen durch teils gleichzeitiges Abarbeiten von Aufrufen beschleunigt - siehe früher S- und K-Links in Runlevel-Ordnern alle mit gleicher Nummerierung (hier 50 - S50… / K50…)
Wir nehmen nur noch Skripte, die nicht sauber mit systemd arbeiten können - oder noch nicht umgeschrieben worden sind. Anm.: kann man kaum noch in den alten Runlevel-Ordnern finden!
Hinweis: seit openSUSE 42.3 und folgende openSUSE: es befinden sich nur
im „allgemeinen“ Bootordner
/etc/init.d/boot.d
noch Start-/Stop-Skripte für die AppArmor-Technik -
alles Andere mit SystemD-Techniken sauber umgesetzt.
Abwärtskompatible Runlevel-Tools lassen sich immer noch nutzen:
runlevel
, init X
(X = S, 0, 1, 3, 5, 6) ,
shutdown
, halt
, reboot
Wichtigste SystemD-Befehle:
systemctl
- Manager für alle SystemD-Units: Dienste (.service), Timer (.timer) oder Targets (.target)systemd-...
- Tools für die SystemD-Analyze (siehesystemd-analyze
) und Cojournalctl
- Tool für die Auswertung und den Zugriff auf die SystemD-Journale
Ein paar beispielhafte Aufrufe:
systemctl
bzw.systemctl list-units
- alle SystemD Units auflistensystemctl list-units --type service --state running
- alle laufende Dienste (.service) auflistenjournalctl -u ssh
- Journal für Unit SSH (bzw. SSHD) aufrufen
Hinweis zu Systemd-Journal: ein eigener Service - mit eigener Konfiguration
(siehe /etc/systemd/journald.conf
- Storage).
Per Default sind die Journale der Dienste nicht persistent - sie können also
nur in einer Linux-Session genutzt werden.
Hier mal eine ausführlichere Gegenüberstellung von SysVinit vs. SystemD:
SysVinit |
systemd |
Bemerkungen |
---|---|---|
Runlevel |
Targets |
Bezeichungen für gewünschte Bootumgebung |
/etc/inittab |
keine /etc/inittab (!!) in Ordnern diverse Dateien: (z.B.) /usr/lib/systemd/system |
Konfigurationsdatei(en) |
runlevel init telinit sysctl chkkonfig |
runlevel (wegen Kompatibilität) init (w. K.) telinit (w. K.) systemctl journalctl systemd- (z.B. systemd-analyze blame) |
Tools |
service sshd status |
systemctl status sshd.service |
Status openSSH Server |
service sshd start |
systemctl start sshd.service |
Starten openSSH Server |
service sshd stop |
systemctl stop sshd.service |
Stoppen openSSH Server |
service sshd restart |
systemctl restart sshd.service |
Restarten openSSH Server |
service sshd reload |
systemctl reload sshd.service |
Konfiguration openSSH Server neu laden |
chkconfig sshd on |
systemctl enable sshd.service |
openSSH im Runlevel/Target aktivieren |
chkconfig sshd off |
systemctl disable sshd.service |
openSSH im Runlevel/Target deaktivieren |
Man. Suche in Logdateien |
journalctl -u sshd.service |
Journal für openSSH (als root) |
chkconfig –list |
systemctl list-unit-files systemctl list-dependencies multi-user-target |
Übersicht Dienste in Runleveln/im Target |
init 3 (oder) telinit 3 |
systemctl isolate runlevel3.target systemctl isolate multi-user.target |
in Runlevel 3 wechseln bzw. in multi-user.target |
init 5 (oder) telinit 5 |
systemctl isolate runlevel5.target systemctl isolate graphical.target |
in Runlevel 5 wechseln bzw. in graphical.target |
… |
systemctl isolate default.target |
in Standard-Runlevel wechseln bzw. in default.target |
init 0 (oder) telinit 0 shutdown -h poweroff |
systemctl isolate runlevel0.target systemctl isolate poweroff.target shutdown -h poweroff |
Rechner ausschalten |
init 6 (oder) telinit 6 shutdown -r reboot |
systemctl isolate runlevel6.target systemctl isolate reboot.target shutdown -r reboot |
Rechner rebooten |
Tabelle zu SysVinit vs. systemd (siehe auch Link Fedoraprojekt (Link)
Praktische Übungen: systemctl start | stop | enable | disable