sammlung:systemctl
Inhaltsverzeichnis
systemctl
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.
Übersicht
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.
Voraussetzungen
- systemd als Init-System installiert und aktiv
- Root-Privilegien oder Sudo für bestimmte Operationen
- Kenntnis der verfügbaren Unit-Namen (Services, Targets, etc.)
Anleitung
Services starten und stoppen
# 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
Service-Status abfragen
# 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
Autostart aktivieren und deaktivieren
# 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
Services aktivieren und deaktivieren
# 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
Dependency-Informationen und Auslöser
# Unit-Abhängigkeiten anzeigen systemctl list-dependencies nginx # Unit-Abhängigkeiten für Targets systemctl list-dependencies multi-user.target
Systemstart und Runlevel
# 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 und Diagnostik
# 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
Systemd-Unit-Dateieinstellung
# 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
Hinweise
Best Practices:
- Immer
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
Häufige Fehler vermeiden:
-
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
Siehe auch
Quellen
sammlung/systemctl.txt · Zuletzt geändert: von 127.0.0.1
