Benutzer-Werkzeuge

Webseiten-Werkzeuge


sammlung:systemctl_status

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 Boot
  • preset: 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