Benutzer-Werkzeuge

Webseiten-Werkzeuge


systemd

Inhaltsverzeichnis

systemd ist ein Init-System und System-Management-Framework für Linux. Es ersetzt klassische Init-Systeme wie SysVinit oder Upstart und ist heute der Standard in fast allen großen Linux-Distributionen (RHEL, Fedora, Ubuntu, Debian, Arch, SUSE, uvm.). Es stellt eine komplette Suite an Komponenten zur Verwaltung von Diensten, Logging, Netzwerk, Zeitplanung, Cgroups, Security-Hardening und Ressourcen bereit.

systemd besteht aus vielen modularen Komponenten:

  • PID 1 (systemd) – Init-System & Prozessmanager
  • systemd-journald – Logging
  • systemd-logind – Benutzer- & Sitzungsverwaltung
  • systemd-networkd – Netzwerk (Server-Standard in Ubuntu) (veraltet?)
  • systemd-resolved – DNS Resolver
  • systemd-timesyncd – NTP/Zeitsynchronisierung
  • systemd-udevd – Geräteverwaltung
  • systemd-tmpfiles – temporäre Dateien/Verzeichnisverwaltung
  • systemd-homed – Nutzerverwaltung (optional)

Durch seine modulare Architektur kann systemd Stück für Stück erweitert werden.

Nicht jede Systemd Distribution verwendet alle oder die selben Module!

Units

systemd verwaltet alles in Form sogenannter Units. Wichtige Unit-Typen:

TypZweck
.serviceDienste
.socketSockets für socket-activated services
.timerCron-Ersatz, zeitgesteuerte Jobs
.pathStartet Service bei Dateiänderungen
.mount / .automountMountpoints
.targetGruppen von Units (z. B. multi-user.target)
.sliceCgroup-Bereiche, Ressourcensteuerung

Unit-Dateien liegen unter:

  • /usr/lib/systemd/system/ → Distribution
  • /etc/systemd/system/ → Administrator-Anpassungen (höchste Priorität)

systemd analysiert Abhängigkeiten mit:

  • Requires=
  • Wants=
  • Before=
  • After=

Es startet Dienste parallel, wodurch Bootprozesse erheblich beschleunigt werden.

Ein Beispiel:

[Unit]
Description=Demo Application
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/app
ExecStart=/opt/app/start.sh
Restart=on-failure
RestartSec=5

# Hardening / Sandboxing
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
NoNewPrivileges=true
CapabilityBoundingSet=
RestrictSUIDSGID=true
RestrictNamespaces=true

[Install]
WantedBy=multi-user.target

Logging

systemd bringt ein eigenes Logging-System:

  • binär
  • lokal oder persistent
  • mit systemd integriert

Konfiguration: /etc/systemd/journald.conf

Beispiele:

[Journal]
Storage=persistent
SystemMaxUse=1G
RuntimeMaxUse=200M
ForwardToSyslog=yes

Log lesen:

journalctl -u nginx.service
journalctl -b
journalctl --since "1 hour ago"

DNS

systemd-resolved ist der DNS-Resolver-Dienst von systemd.

# Cache leeren
resolvectl flush-caches

# status
resolvectl status

Auf modernen Systemen ist es ein Symlink:

/etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf

Falls du die Datei manuell setzen willst:

sudo rm /etc/resolv.conf
echo -e "nameserver 1.1.1.1\nnameserver 8.8.8.8" | sudo tee /etc/resolv.conf

Dann nutzt du nicht mehr systemd-resolved.

systemd.txt · Zuletzt geändert: 2025/11/13 00:43 von admin