sammlung:systemctl_status
Inhaltsverzeichnis
systemctl status
Kurzfassung: systemctl status zeigt den aktuellen Zustand und detaillierte Informationen zu Systemdiensten an, inklusive Status, PID, Ressourcennutzung und letzten Logs. Zielgruppe: Systemadministratoren zur Diagnose und Überwachung von Services.
Übersicht
Der Befehl systemctl status ist ein essentielles Diagnostik-Tool zur Überprüfung von Systemdiensten. Er liefert Informationen wie:
- Aktuellen Status (running, stopped, failed, etc.)
- Konfiguration (enabled, disabled, static)
- Main Process ID (PID) und Worker-Prozesse
- Speicher- und CPU-Nutzung
- Die letzten Systemd-Log-Einträge
Voraussetzungen
- systemd als Init-System aktiv
- Service/Unit muss vorhanden sein
- Keine Privilegien erforderlich (lesender Zugriff)
Anleitung
Grundlegende Statusabfrage
# Status eines Services abfragen systemctl status nginx # Status eines Services ohne Pagination systemctl status --no-pager nginx # Status ohne letzte Logs systemctl status --no-legend nginx
Interpretation der Ausgabe
Die Ausgabe gliedert sich in folgende Bereiche:
Service-Identifikation:
● nginx.service - A high performance web server and a reverse proxy server
Zeigt Unit-Name (nginx.service) und Beschreibung.
Loaded-Zeile:
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
loaded: Unit-Datei gefunden und geparsed- Pfad zur Unit-Datei
enabled: Service startet beim Bootpreset: Vordefinierte Konfiguration
Active-Zeile:
Active: active (running) since Fri 2026-01-30 19:38:32 CET; 10min ago
active: Service läuft(running): Genauer Status-Typ- Zeitstempel des letzten State-Wechsels
- Uptime seit letztem Start
Prozess- und Ressourceninformationen
# Zeigt PID und Prozessbaum systemctl status nginx | grep -A 20 "CGroup" # Nur Memory-Nutzung systemctl status nginx | grep Memory # Nur CPU-Zeit systemctl status nginx | grep CPU
Beispiel-Analyse:
Process: 4617 ExecStartPre=/usr/sbin/nginx -t -q (code=exited, status=0/SUCCESS)
Process: 4619 ExecStart=/usr/sbin/nginx -g daemon on (code=exited, status=0/SUCCESS)
Main PID: 4653 (nginx)
Tasks: 7 (limit: 9422)
Memory: 5.0M (peak: 11.3M)
CPU: 48ms
- ExecStartPre: Vorbedingung erfolgreich (status=0)
- ExecStart: Service gestartet erfolgreich
- Main PID 4653: Hauptprozess-ID
- 7 Tasks: 1 Master + 6 Worker-Prozesse
- Memory: Aktuell 5.0M, Peak 11.3M
- CPU: 48ms CPU-Zeit verbraucht seit Start
Status-Kodierungen
Active-Status:
# Nur Wort ("active" oder "inactive") systemctl is-active nginx # Mit aussagekräftigen Typen: # active (running) - Service läuft # active (exited) - Service beendet, aber erfolgreich # active (waiting) - Service wartet auf Events # inactive (dead) - Service läuft nicht # failed - Fehler beim Start # activating/deactivating - Übergang läuft
Exit-Codes verstehen
code=exited, status=0/SUCCESS → Erfolgreich beendet code=exited, status=1/FAILURE → Mit Fehler beendet code=signal, signal=15/TERM → Durch SIGTERM beendet code=signal, signal=9/KILL → Durch SIGKILL beendet
Detaillierte Informationen
# Alle Unit-Eigenschaften anzeigen systemctl show nginx # Spezifische Eigenschaften systemctl show -p MainPID -p MemoryCurrent -p CPUUsageNSec nginx # Abhängigkeiten systemctl show -p Requires -p Requisite -p Wants nginx
Status mit Logs kombinieren
# Status anzeigen, dann in Logs navigieren systemctl status nginx journalctl -u nginx -n 20 -e # Nur Fehler-Logs anzeigen journalctl -u nginx -p err # Logs seit letztem Systemd-Start journalctl -u nginx -b
Automatisierte Status-Abfragen
# Status in JSON-Format systemctl show nginx --output=json # Mehrere Services gleichzeitig systemctl status nginx mysql postgresql # Status und Exit-Code für Scripting if systemctl is-active --quiet nginx; then echo "nginx läuft" else echo "nginx nicht aktiv" fi
Häufige Status-Probleme
Service ist "failed"
# 1. Logs zur Fehlerursache prüfen journalctl -u nginx -b --priority=err # 2. Unit-Datei validieren systemctl cat nginx | systemd-analyze verify - # 3. Service zurücksetzen und erneut starten sudo systemctl reset-failed nginx sudo systemctl start nginx
Service ist "inactive" obwohl enabled
# Aktivierungsstatus prüfen systemctl is-enabled nginx # Logs auf Boot-Fehler prüfen journalctl -u nginx -b | head -20 # Abhängigkeiten prüfen systemctl list-dependencies nginx
Sehr hohe Memory/CPU-Nutzung
# Resource-Limits anzeigen systemctl show -p MemoryLimit -p CPUQuota nginx # Prozessbaum detailliert ps -ef | grep nginx # Top mit nur diesem Service top -p $(systemctl show -p MainPID --value nginx)
Hinweise
Best Practices:
-
systemctl status ohne Weitergabe liefert visuell farbcodierte Ausgabe
- Für Scripting is-active, is-enabled verwenden (einfach parsbar)
- journalctl immer zur Detailanalyse kombinieren
- Exit-Codes (status=0) vs Signal-Codes (signal=15) unterscheiden
- Memory-Peak zeigt Spitzenlast, nicht aktuell verbrauchten RAM
Häufige Fehler vermeiden:
-
status=0 bedeutet Erfolg, nicht Fehler!
- Nicht alle Status-Wechsel sind Fehler (normal: exited nach Start)
- High Memory = Peak, nicht aktueller Verbrauch
- Task-Limit nicht mit PID-Limit verwechseln
- failed bedeutet: reset-failed vor erneutem Start nötig
Siehe auch
Quellen
sammlung/systemctl_status.txt · Zuletzt geändert: von 127.0.0.1
