Systemd wird vom Kernel als initialier Prozess
(PID 1) gestartet. Er
öffnet verschlüsselte Partitionen,
montiert das Wurzeldateisystem,
stellt Auslagerungsspeicher bereit,
konfiguriert das Netzwerk,
startet und überwacht Daemonen,
erntet Zombie-Prozesse und
verwaltet Sitzungen von Benutzern.
Dienste konfigurieren
Informationen über die zu startendenden Dienste bezieht
der Service-Manager aus sogenannten Unit-Dateien
in folgenden Verzeichnissen:
/run/systemd/system
Dynamisch zur Laufzeit generierte Dienste
/lib/systemd/system
Dienste der Paketverwaltung
/etc/systemd/system
Dienste des Administrators maskieren die mitgelieferten
/etc/systemd/network
Schnittstellen des Netzwerk-Daemons
/etc/systemd/user
Dienste für Sitzungen aller Anwender
~/.config/systemd/user
Dienste für die Sitzung eines bestimmten Anwenders
Es gibt viele Arten von Diensten:
target
Ziele bilden eine Hierarchie von Abhängigkeiten und ersetzen damit die aus System V bekannten Runlevel in /etc/rc.d
service
Dienste starten Hintergrundprozesse und ersetzen damit die Start-Skripte in /etc/init.d
network
Nertzwerke konfigurieren Schnittstellen und ersetzen damit den ifupdown-Mechanismus
socket
Sockets aktivieren Daemonen und ersetzen damit inetd
timer
Wecker starten regelmäßig laufende Dienste und ersetzen damit cron und at
mount
Montageeinheiten binden Dateisysteme statisch ein lesen dazu die Dateisystemtabelle /etc/fstab
automount
Automontierer binden Dateisysteme dynamisch ein
swap
Auslagerungsspeicher aktivieren
device
Geräte laden Treiber und erzeugen Gerätedateien
path
Pfade überwachen Verzeichnisse auf Änderungen
snapshot
Momentaufnahmen merken sich den aktuellen Zustand des Systems
slice
Scheiben erzeugen Kontrollgruppen für Daemonen, Container und Benutzer
scope
Bereiche gruppieren Prozesse
System starten
Beim Start des Rechners versucht der Service-Manager, das
default.target zu erreichen.
Auf Arbeitsplatzrechnern entspricht dies dem
graphical.target und auf Servern dem
multiuser.target.
Im Rettungsmodus werden alle Daemonen gestoppt.
Wird systemctl über einen der Symlinks
halt,
reboot,
poweroff oder
shutdown
aufgerufen, verhält es sich entsprechend.
Programm
Kommando
Operand
Beschreibung
Systemstatus
systemctl
[--failed]
Geladene (fehlerhafte) Dienste auflisten
status
Zustand des Systems anzeigen
list-unit-files
Dienste und deren Status auflisten
list-sockets
Sockets auflisten
list-timers
Aufgaben auflisten
reset-failed
Fehlerstatus zurück setzen
daemon-reload
Konfiguration neu einlesen
Daemon beschwören
status
Unit
Zustand eines Daemons anzeigen
start
Unit
Daemon starten
stop
Unit
Daemon beenden
enable
Unit
Daemon automatisch starten
disable
Unit
Daemon nur noch manuell starten
mask
Unit
Daemon dauerhaft deaktivieren
unmask
Unit
Daemon reaktivieren
kill
Unit
Signal an einen Daemon senden
cat
Unit
Konfiguration ausgeben
Runlevel ändern
default
Normalbetrieb (default.target)
rescue
Rettungsmodus (sysinit.target, Keine Daemons)
emergency
Disastermodus (lokale Root-Shell)
get-default
Aktuelles Ziel anzeigen (graphical.target)
set-default
Unit
Neues Ziel (default.target) festlegen
list-dependencies
[Unit]
Abhängigkeiten auflisten
Rechner herunterfahren
halt
Rechner nur herunterfahren
reboot
Rechner neu starten (S0 – On)
suspend
Bereitschaftsmodus (S3 – Standby)
hibernate
Schlafzustand (S4 – Hibernate)
poweroff
Rechner ausschalten (S5 – Off)
Protokolle ansehen
Der Service-Manager leitet die Standardausgabe aller Daemonen an das Journal weiter
und ergänzt Metainformationen wie Zeitpunkt, Benutzer- und Prozessnummer.
Wenn das Verzeichnis /var/log/journal existiert,
werden die Meldungen bis zu einer Obergrenze persistiert.
Wenn das Paket rsyslogd(8) installiert ist, reicht das Journal
die Meldungen durch.
Programm
Option
Operand
Beschreibung
journalctl
-f
Aktuellen Meldungen folgen (/var/log/messages)
-b
Zeitraum, zum Beispiel seit dem letztem Start des Rechners
-u
Unit
Daemon, zum Beispiel nginx
-p
Err
Priorität, zum Beispiel nur Fehler
_UID=1000
Feld, zum Beispiel Benutzer
Netzwerk konfigurieren
Der Netzwerk-Daemon
überwacht und konfiguriert Schnittstellen, die zu einer
[Match]-Sektion in einer Netzwerk-Unit unter
/etc/systemd/networkd/*.network passen.
Programm
Kommando
Operand
Beschreibung
networkctl
list
[Link]
Schnittstellen und deren Status auflisten
status
[Link]
Status der Konnektivität ausgeben
lldp
[Link]
Benachbarte Rechner per LLDP auflisten
label
Nummerierung für IPv6-Prefixe gemäß RFC 3484 auflisten
Hostnamen auflösen
Der Resolver-Daemon
löst als cachender und validierender
DNS- und
MDNS-Server
Hostnamen und Adressen auf. Er bietet seine Dienste auf dem D-Bus an
und lauscht auf der lokalen Adresse 127.0.0.53 an Port
53.
Programm
Kommando
Operand
Beschreibung
resolvectl
status
[Link]
Status-Übersicht ausgeben
statistics
Anzahl der Anfragen und anzeigen
reset-statistics
Zähler zurücksetzen
flush-caches
Gespeicherte Ergebnisse löschen
query
Host
Hostname oder Adresse abfragen
service
[[Name] Type] Domain
SRV-Record abfragen
tlsa
[Family] Domain[:Port] …
TLS-Schlüssel abfragen
openpgp
EmailAddress …
OPENPGP-Schlüssel abfragen
dns
LinkIpAddress …
Adresse des Nameservers setzen
domain
LinkDomain
Lokale Domäne setzen
default-route
Link false
Anfragen über diese Schnittstelle auflösen
llmnr
Link true
Multicast via LLMNR aktivieren
mdns
Link false
Multicast via MDNS aktivieren
dnsovertls
Link false
DoT aktivieren
dnssec
Link false
DNSSEC aktivieren
nta
LinkDomain …
Ausnahmen (NTA) festlegen
revert
Link
Schnittstelle auf Voreinstellungen zurücksetzen
Container verwalten
Der Machine-Daemon
verwaltet Container ähnlich wie Docker,
ist aber bei weitem nicht so mächtig. Alle Container im Verzeichnis
/var/lib/machines werden automatisch gestartet.
Programm
Kommando
Operand
Beschreibung
machinectl
list
Listet laufende Container auf
status
Name
Zeigt Konfiguration und Prozesse des Containers an
show
Name
Zeigt Eigenschaften des Containers an
start
Name
Startet Container per systemd-nspawn
shell
Name
Öffnet eine Root-Shell
login
Name
Öffnet eine Login-Shell
poweroff
Name
Fährt den Container herunter
reboot
Name
Startet den Container neu
terminate
Name
Beendet den Container
kill
Name
Sendet Signal an Prozess im Container
bind
NameDir
Blendet Verzeichnis in den Container ein
copy-to
NameDir
Kopiert Datei vom Host in den Container
copy-from
NameDir
Kopiert Datei aus dem Container zum Host
So erzeugt und startet man ein neues Image:
apt install systemd-containerdebootstrap --variant=minbase stable /var/lib/machines/Namemachinectl start Namemachinectl shell Name
Sitzung verwalten
Der Login-Daemon
verwaltet Sitzungen von Benutzern und regelt die Zuordnung von
Peripheriegeräten zu Arbeitsplätzen. So können mehrere Benutzer
gleichzeitig an einem Rechenr arbeiten, an dem mehrere
Bildschirme, Tastaturen und Mäuse angeschlossen sind.
Programm
Kommando
Operand
Beschreibung
loginctl
list-seats
Listet die verfügbaren Arbeitsplätze auf
list-users
Listet die angemeldeten Benutzer auf
list-sessions
Listet die aktiven Sitzungen auf
seat-status
Seat
Zeigt Geräte eines Arbeitsplatzes an
user-status
Uid
Zeigt Prozesse eines Benutzers an
session-status
Sid
Zeigt Prozesse einer Sitzung an
Über den Locale-Daemon
kann der Benutzer das Layout der Tastatur, Sprache und Zeichensatz ändern.
Programm
Kommando
Operand
Beschreibung
localectl
status
Zeigt aktuelle Einstellungen an
set-locale
LANG=de_DE.UTF-8
Legt eine Sprache fest
set-keymap
n/a
Legt ein Layout fest
set-x11-keymap
de-latin1-nodeadkeys
Legt das Layout für X fest
list-locales
Listet verfügbare Sprachen auf
list-keymaps
Listet Layouts für die Konsole auf
list-x11-…
Listet Layouts für X auf
Der Time&Date-Daemon
verwaltet die in /etc/timezone konfigurierbare Zeitzone
auf Basis der in /etc/adjtime gesetzten Zeitbasis,
gleicht die Systemzeit mit der eingebauten Hardware-Uhr
(RTC)
ab und synchronisiert gegebenfalls die Uhrzeit über das Netzwerk.
Programm
Kommando
Operand
Beschreibung
timedatectl
status
Zeigt aktuelle Informationen an
set-ntp
true|false
Aktiviert Synchronisierung
set-local-rtc
true|false
Legt die Basis für die interne fest
set-time
IsoDateTime
Ändert die aktuelle Uhrzeit
set-timezone
Europe/Berlin
Ändert die Zeitzone
list-timezones
Listet verfügbare Zeitzonen auf
Der Hostname-Daemon
verwaltet den in der Datei /etc/hostname
konfigurierten Hostnamen. Er kann den Namen dynamisch
ändern und Icons für eine grafische Visualisierung vorgeben.
Programm
Kommando
Operand
Beschreibung
hostnamectl
status
Zeigt aktuelle Werte
set-hostname
Host
Ändert den Rechnernamen
set-iconname
computer-laptop|…
Ändert das Symbol
set-chassis
desktop|laptop|server|…
Ändert den Gehäusetyp
Schlafmodus konfigurieren
suspend
Arbeitsspeicher weiterhin mit Strom versorgen, aber alle anderen Komponenten abschalten
hibernate
Arbeitsspeicher auslagern und Stromversorgung trennen
hybrid-sleep
Arbeitsspeicher auslagern, aber weiterhin mit Strom versorgen
suspend-then-hibernate
Arbeitsspeicher erst nach eine Wartefrist auslagern