===== 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 '' schnell den Status checken - ''systemctl show '' 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 ==== * [[kommandoreferenz:prozessverwaltung|Prozessverwaltung]] * [[kommandoreferenz:terminal|Terminal]] * [[kommandoreferenz:server|Server]] * [[sammlung:systemd|systemd]] * [[sammlung:journalctl|journalctl]] ==== Quellen ==== * [[https://man7.org/linux/man-pages/man1/systemctl.1.html|systemctl - man page]] * [[https://www.freedesktop.org/software/systemd/man/systemctl.html|systemd Dokumentation]] ---- {{tag>cli systemctl systemd services daemon-management}} ----