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 (siehe systemd-analyze) und Co

  • journalctl - Tool für die Auswertung und den Zugriff auf die SystemD-Journale

Ein paar beispielhafte Aufrufe:

  • systemctl bzw. systemctl list-units - alle SystemD Units auflisten

  • systemctl list-units --type service --state running - alle laufende Dienste (.service) auflisten

  • journalctl -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