Kurzfassung: systemctl ist das zentrale Verwaltungstool für systemd und verwaltet Systemdienste (Units), deren Start/Stop, Autostart und Status. Zielgruppe: Systemadministratoren und Benutzer zur Verwaltung von Systemdiensten.
systemctl ist der Hauptbefehl des systemd-Init-Systems zur Verwaltung von Systemdiensten, Sockets, Geräten und anderen „Units“. Damit lassen sich Services starten, stoppen, neu starten, aktivieren und ihr Status abfragen. systemctl ersetzt die alten init-Skripte und bietet eine einheitliche Schnittstelle.
# Service starten sudo systemctl start nginx # Service stoppen sudo systemctl stop nginx # Service neustarten sudo systemctl restart nginx # Service nur neu laden (ohne Interrupt) sudo systemctl reload apache2
# Status eines spezifischen Services systemctl status sshd # Alle Services auflisten systemctl list-units --type=service # Nur aktive Services anzeigen systemctl list-units --type=service --state=running # Fehlerhafte Services finden systemctl list-units --type=service --state=failed
# Service beim Booten automatisch starten sudo systemctl enable nginx # Service nicht mehr beim Booten starten sudo systemctl disable nginx # Autostart-Status abfragen systemctl is-enabled nginx
# Service aktivieren (für aktuelle Session) sudo systemctl start nginx # Service deaktivieren (für aktuelle Session) sudo systemctl stop nginx # Service maskieren (verhindert manuellen und automatischen Start) sudo systemctl mask nginx # Service unmaskieren sudo systemctl unmask nginx
# Unit-Abhängigkeiten anzeigen systemctl list-dependencies nginx # Unit-Abhängigkeiten für Targets systemctl list-dependencies multi-user.target
# Systemrunlevel anzeigen systemctl get-default # Standardrunlevel ändern sudo systemctl set-default multi-user.target # In Runlevel wechseln sudo systemctl isolate graphical.target # Verfügbare Targets anzeigen systemctl list-units --type=target
# Logs einer Unit anzeigen journalctl -u nginx # Logs in Echtzeit verfolgen journalctl -u nginx -f # Letzte 50 Zeilen journalctl -u nginx -n 50 # Logs seit letztem Boot journalctl -u nginx -b
# Unit-Datei bearbeiten sudo systemctl edit nginx # Neue Unit-Datei mit Editor sudo systemctl edit --full nginx # Unit-Datei-Änderungen neu laden sudo systemctl daemon-reload
sudo systemctl daemon-reload ausführen, nachdem Unit-Dateien geändert wurden
- Mit systemctl is-active <unit> schnell den Status checken
- systemctl show <unit> zeigt detaillierte Informationen
- Logs mit journalctl kombinieren für vollständige Diagnostik
sudo systemctl mask verhindert auch Starts durch Abhängigkeiten (sparsam nutzen)
- Nach Konfigurationsänderungen reload verwenden, wenn möglich (weniger Unterbrechung als restart)
- Unit-Namen sind case-sensitive