- 1 1. Einleitung
- 2 2. So listen Sie Services mit systemctl auf
- 3 3. Grundlegende Service-Befehle mit systemctl
- 4 4. Nützliche Optionen und Tipps für systemctl
- 5 5. Häufige Probleme und Lösungen
- 6 6. Fazit
- 7 7. Häufig gestellte Fragen (FAQ)
- 7.1 Q1. Was ist der Unterschied zwischen systemctl und service?
- 7.2 Q2. Was ist der Unterschied zwischen list-units und list-unit-files?
- 7.3 Q3. Können Services mit dem Status „static“ gestartet werden?
- 7.4 Q4. Wie starte ich einen „masked“ Service?
- 7.5 Q5. Gibt es grafische Tools zur Anzeige von Service-Status?
- 7.6 Q6. Wo platziere ich selbst erstellte Unit-Dateien?
1. Einleitung
Wenn Sie Linux nutzen, möchten Sie häufig den Status von Diensten überprüfen oder sich eine Liste der aktuell laufenden Prozesse anzeigen lassen. In solchen Fällen ist der systemctl
-Befehl äußerst praktisch.
Dieser Befehl arbeitet mit „systemd“, dem Startsystem und Service-Manager unter Linux. Mit systemctl
können Sie den Status von Diensten (Units) abfragen, sie starten, stoppen, neu starten oder eine Übersicht anzeigen – ein echtes Schweizer Taschenmesser für die Service-Verwaltung.
Gerade mit dem Fokus auf „systemctl Liste“ lassen sich nicht nur aktive Services, sondern auch deaktivierte oder für den Autostart konfigurierte Dienste aus verschiedenen Perspektiven analysieren.
In diesem Abschnitt geben wir einen kompakten Überblick darüber, was systemctl ist und was Sie in diesem Artikel lernen können.
Was ist systemctl?
systemctl
ist das Standardwerkzeug auf systemd-basierten Linux-Distributionen, um verschiedene „Units“ wie Dienste, Targets oder Mountpoints zu verwalten und ihren Status zu prüfen.
Zum Beispiel können Sie damit Apache (httpd), SSH und andere Services starten, stoppen oder deren Status anzeigen lassen.
Beziehung zwischen systemd und systemctl
systemd ist das Herzstück des Boot-Prozesses und der Service-Verwaltung unter Linux und hat die alten Systeme wie „SysVinit“ oder „Upstart“ abgelöst. Das Kommandozeilenwerkzeug zur Steuerung von systemd heißt systemctl
.
Man kann sagen: systemd ist das Kontrollzentrum, während systemctl der Operator ist, der die Befehle ausführt.
Was Sie in diesem Artikel lernen
In diesem Beitrag erhalten Sie Antworten auf folgende Fragen:
- Wie kann ich mir die aktuell laufenden Services anzeigen lassen?
- Wie kann ich auch inaktive Dienste mit auflisten?
- Wie überprüfe ich, ob ein Dienst beim Systemstart automatisch gestartet wird?
- Wie lese und interpretiere ich die Ergebnislisten richtig?
Auch Linux-Einsteiger werden anhand von Kommando-Beispielen und Output-Analysen Schritt für Schritt durch die Materie geführt – bleiben Sie also gerne bis zum Ende dabei!
2. So listen Sie Services mit systemctl auf
Gerade bei der Systemadministration unter Linux ist es entscheidend, sich schnell einen Überblick über alle Services zu verschaffen. Mit systemctl
lassen sich nicht nur aktive, sondern auch inaktive und für den Autostart konfigurierte Dienste einfach prüfen.
Wir erklären Ihnen die drei wichtigsten Methoden für die Anzeige:
- Liste aktiver Services
- Komplette Service-Übersicht (inklusive inaktiver Services)
- Auflistung der Service-Unit-Dateien (inklusive Startkonfiguration)
2.1 Aktive Services anzeigen
Um die aktuell auf dem System laufenden (aktiven) Services anzuzeigen, verwenden Sie folgenden Befehl:
systemctl list-units --type=service
Die Ausgabe dieses Befehls enthält folgende Spalten:
Feldname | Bedeutung |
---|---|
UNIT | Name des Dienstes (z. B. ssh.service) |
LOAD | Ob die Unit-Datei geladen wurde |
ACTIVE | Status des Dienstes (z. B. active, inactive, failed) |
SUB | Detailierter Status (z. B. running, exited, dead) |
DESCRIPTION | Kurzbeschreibung des Dienstes |
Mit diesen Informationen sehen Sie z. B., ob nginx aktuell läuft oder welche Services gerade aktiv sind.
2.2 Auch inaktive Services auflisten
Standardmäßig zeigt list-units
nur die aktiven Dienste an. Um auch inaktive Services anzuzeigen, ergänzen Sie die Option --all
:
systemctl list-units --type=service --all
Mit dieser Option werden auch Services angezeigt, die „inactive“ sind oder bisher nie gestartet wurden.
Sie können die Anzeige außerdem mit der Option --state=
filtern, um z. B. nur gestoppte Dienste aufzulisten:
systemctl list-units --type=service --state=inactive
So bekommen Sie gezielt nur die gestoppten Services angezeigt.
2.3 Service-Unit-Dateien anzeigen
Wenn Sie sehen möchten, welche Dienste grundsätzlich vorhanden sind und beim Systemstart aktiviert werden, nutzen Sie diesen Befehl:
systemctl list-unit-files --type=service
Damit erhalten Sie eine Übersicht der Service-Unit-Dateien (Konfigurationsdateien) und deren Status (enabled/disabled etc.).
STATE-Wert | Bedeutung |
---|---|
enabled | Wird beim Systemstart automatisch aktiviert |
disabled | Muss manuell gestartet werden, ist beim Systemstart nicht aktiv |
static | Wird von anderen Units benötigt, kann nicht eigenständig aktiviert/deaktiviert werden |
masked | Explizit deaktiviert, kann nicht gestartet werden (geschützt) |
So erkennen Sie auf einen Blick, welche Services automatisch starten und ob versehentlich ein Dienst maskiert wurde.
3. Grundlegende Service-Befehle mit systemctl
Mit systemctl
können Sie nicht nur den Status von Services prüfen, sondern diese auch starten, stoppen, neu starten oder für den Autostart konfigurieren. Hier die wichtigsten Befehle für die tägliche Linux-Administration.
Gerade bei Server-Management oder Fehlerbehebung sollten Sie diese Kommandos sicher beherrschen.
3.1 Dienst starten
Um einen bestimmten Service manuell zu starten, nutzen Sie den Befehl start
:
sudo systemctl start Dienstname
Beispiel: Apache (httpd) starten
sudo systemctl start httpd.service
Dieser Befehl startet den Dienst sofort. Damit er auch nach einem Neustart aktiv bleibt, nutzen Sie zusätzlich enable
.
3.2 Dienst stoppen
Um einen Service zu stoppen:
sudo systemctl stop Dienstname
Beispiel:
sudo systemctl stop sshd.service
Der Dienst bleibt gestoppt, bis er explizit wieder mit start
gestartet wird.
3.3 Dienst neu starten
Für einen Neustart – z. B. nach einer Konfigurationsänderung – verwenden Sie:
sudo systemctl restart Dienstname
Beispiel:
sudo systemctl restart nginx.service
Der Service wird dabei gestoppt und neu gestartet – unabhängig vom aktuellen Zustand.
3.4 Status eines Dienstes abfragen
Um detaillierte Informationen zum Zustand eines Dienstes zu erhalten:
systemctl status Dienstname
Beispiel:
systemctl status mysql.service
Sie sehen u. a. den aktuellen Status, die Prozess-ID (PID) und eine kurze Log-Übersicht – sehr nützlich bei der Fehlersuche.
3.5 Autostart eines Dienstes aktivieren
Damit ein Service auch nach einem Neustart automatisch startet, nutzen Sie:
sudo systemctl enable Dienstname
Beispiel:
sudo systemctl enable docker.service
Dadurch wird der Dienst beim nächsten Systemstart automatisch gestartet.
3.6 Autostart eines Dienstes deaktivieren
Um den automatischen Start zu verhindern, nutzen Sie:
sudo systemctl disable Dienstname
Beispiel:
sudo systemctl disable cups.service
Jetzt startet der Service beim Booten nicht mehr automatisch.
3.7 Autostart-Status eines Dienstes prüfen
Mit folgendem Befehl prüfen Sie, ob ein Service für den Autostart aktiviert ist:
systemctl is-enabled Dienstname
Beispiel-Ausgabe:
enabled
So sehen Sie auf einen Blick die Start-Policy des Dienstes.
4. Nützliche Optionen und Tipps für systemctl
systemctl
kann mehr als nur Dienste starten und stoppen. Mit folgenden Optionen und Tricks verwalten Sie Services noch effizienter.
Mit diesen Techniken holen Sie das Maximum aus der Serviceverwaltung unter Linux heraus.
4.1 Abhängigkeiten von Diensten anzeigen
Oft hängen Dienste von anderen Units ab. Um die Abhängigkeiten zu sehen, nutzen Sie:
systemctl list-dependencies Dienstname
Beispiel:
systemctl list-dependencies nginx.service
Sie erhalten eine hierarchische Darstellung aller verknüpften Units – praktisch für die Analyse der Startreihenfolge oder bei Problemen.
4.2 Inhalt von Unit-Dateien anzeigen
Zur Überprüfung der Service-Konfiguration können Sie direkt die jeweilige Unit-Datei anzeigen lassen:
systemctl cat Dienstname
Beispiel:
systemctl cat ssh.service
Sie sehen den tatsächlichen Pfad und Inhalt der geladenen Unit-Datei – ideal für die Fehlersuche und Anpassung.

4.3 Unit-Dateien neu laden
Wenn Sie Änderungen an Unit-Dateien vornehmen, müssen diese neu eingelesen werden. Das machen Sie mit:
sudo systemctl daemon-reexec
Oder, üblicher ist:
sudo systemctl daemon-reload
Danach werden Änderungen an den Konfigurationsdateien übernommen. Wenn ein neues Setup nicht greift, ist das oft der erste Schritt zur Lösung.
4.4 Service-Logs anzeigen (Tipp)
Zur Fehleranalyse empfiehlt sich journalctl
:
journalctl -u Dienstname
Beispiel:
journalctl -u docker.service
Sie sehen Fehler, Neustarts oder Warnungen des Dienstes – unverzichtbar für Troubleshooting.
5. Häufige Probleme und Lösungen
Bei der Serviceverwaltung mit systemctl
kann es zu Fehlern oder unerwartetem Verhalten kommen. Hier zeigen wir die gängigsten Probleme und deren Behebung.
So bleiben Sie auch bei „Dienst startet nicht“ oder unklaren Fehlermeldungen souverän und lösen die Situation Schritt für Schritt.
5.1 Wenn ein Dienst nicht startet: Checkliste
Startet ein Dienst nicht, kann zum Beispiel folgender Fehler erscheinen:
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.
Gehen Sie dann in folgender Reihenfolge vor:
- Status prüfen
systemctl status Dienstname
- Fehler-Logs prüfen
journalctl -xe
- Unit-Dateien neu laden
Nach Änderungen unbedingt diesen Befehl ausführen:
sudo systemctl daemon-reload
- Port-Konflikte prüfen
Nutzen Sie:
sudo netstat -tulnp | grep Portnummer
5.2 Fehlermeldungen bei status
interpretieren
Mit systemctl status
erhalten Sie neben dem Status auch die letzten Log-Meldungen, z. B.:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since Fri 2025-04-18 12:00:00 JST; 5s ago
Process: 12345 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
An „Active: failed“ und „status=1/FAILURE“ erkennen Sie sofort, dass der Dienst fehlgeschlagen ist und welcher Prozess betroffen war.
Über die Zeile „Loaded“ finden Sie zudem direkt den Pfad zur Unit-Datei für gezielte Anpassungen.
5.3 Dienst stoppt unerwartet – was tun?
Wenn ein Service zwar startet, aber sofort wieder stoppt, können folgende Ursachen vorliegen:
- Fehler in der Konfigurationsdatei
- Port-Konflikte
- Fehlende Dateien oder Verzeichnisse
- Unzureichende Berechtigungen
Empfohlene Vorgehensweise:
- Konfiguration prüfen und mit
nginx -t
oderapachectl configtest
validieren - Mit
journalctl -u Dienstname
detaillierte Logs ansehen - Sicherstellen, dass alle benötigten Verzeichnisse existieren (z. B.
/var/run/xxx
)
5.4 Fehler „masked“ – Dienst startet nicht
Bei folgender Fehlermeldung nach systemctl start
:
Failed to start example.service: Unit example.service is masked.
Der Dienst ist „masked“ (komplett deaktiviert). Heben Sie das Maskieren auf mit:
sudo systemctl unmask Dienstname
Danach können Sie ihn wie gewohnt starten.
6. Fazit
Die Verwaltung von Diensten unter Linux ist essenziell für den stabilen Betrieb. Das zentrale Werkzeug dafür ist systemctl
: Mit Listen und Service-Kommandos behalten Sie immer die Kontrolle über den Systemzustand.
In diesem Beitrag zum Keyword „systemctl Liste“ haben wir folgende Punkte behandelt:
Was mit systemctl möglich ist (Zusammenfassung)
- Services auflisten
- Aktive Dienste anzeigen (
list-units --type=service
) - Komplette Liste inklusive inaktiver Services (
--all
oder--state=
Optionen) - Unit-Dateien und Autostart-Status anzeigen (
list-unit-files
) - Grundlegende Service-Steuerung
- Starten, Stoppen, Neustarten, Status prüfen (start / stop / restart / status)
- Autostart konfigurieren (enable / disable / is-enabled)
- Tipps & Problemlösung
- Abhängigkeiten anzeigen, Unit-Dateien prüfen, Änderungen neu einlesen
- Log-Analyse und Status-Prüfung zur Fehlersuche
Best Practices für das Service-Management
- Status immer vor Änderungen prüfen (
status
ausführen!) - Autostart-Konfiguration kennen (
is-enabled
nutzen) - Nach Änderungen immer
daemon-reload
verwenden - Bei Problemen Logdateien mit
journalctl
analysieren
Sorgfältige Status- und Log-Prüfungen sind die Basis für eine stabile Systemumgebung und schnelle Fehlerbehebung.
Weiterführende Themen
Wer noch tiefer einsteigen möchte, kann sich mit folgenden Themen beschäftigen:
- systemd Targets (Unterschied zu Runleveln)
- Geplante Aufgaben mit
systemd-timer
- Eigene Unit-Dateien erstellen und verwalten
7. Häufig gestellte Fragen (FAQ)
Hier beantworten wir häufig gestellte Fragen zu systemctl
und Service-Listen. Auch für Fortgeschrittene ist ein Blick in die FAQ oft hilfreich.
Q1. Was ist der Unterschied zwischen systemctl
und service
?
A1.systemctl
ist das Standardwerkzeug zur Service-Verwaltung unter systemd und in modernen Linux-Distributionen wie Ubuntu, CentOS oder Fedora im Einsatz.
Der Befehl service
stammt noch aus Zeiten von SysVinit und ist meist nur noch aus Kompatibilitätsgründen vorhanden. Für systemd-basierte Systeme wird klar die Nutzung von systemctl
empfohlen.
Q2. Was ist der Unterschied zwischen list-units
und list-unit-files
?
A2.
list-units
zeigt alle aktuell geladenen Units (d. h. laufende oder jemals gestartete) an.list-unit-files
zeigt alle vorhandenen Unit-Dateien samt deren Status (enabled / disabled etc.) an.
Kurz gesagt: „Was läuft gerade?“ vs. „Was ist konfiguriert?“
Q3. Können Services mit dem Status „static“ gestartet werden?
A3.
Ja, auch Services im Status static
können manuell mit start
aktiviert werden. Sie lassen sich jedoch nicht per enable
für den Autostart konfigurieren, da sie von anderen Units abhängen.
Q4. Wie starte ich einen „masked“ Service?
A4.masked
bedeutet, dass der Dienst komplett deaktiviert ist und nicht gestartet werden kann. Heben Sie das Maskieren mit folgendem Befehl auf:
sudo systemctl unmask Dienstname
Anschließend können Sie den Dienst wie gewohnt starten.
Q5. Gibt es grafische Tools zur Anzeige von Service-Status?
A5.
Je nach Distribution gibt es Programme wie gnome-system-monitor
, KSysGuard
oder Cockpit
, mit denen sich Dienste auch per GUI überwachen lassen.
Für die meisten Steuerungsaufgaben ist jedoch systemctl
nach wie vor das zuverlässigste Werkzeug.
Q6. Wo platziere ich selbst erstellte Unit-Dateien?
A6.
Legen Sie eigene Unit-Dateien in /etc/systemd/system/
ab. Nach dem Anlegen oder Bearbeiten führen Sie bitte aus:
sudo systemctl daemon-reload
Anschließend können Sie die Unit wie gewohnt mit start
oder enable
verwalten.