Laufende Dienste unter Linux auflisten: Ein vollständiger Leitfaden für alle Init-Systeme

LightNode
By LightNode · · Aktualisiert 2026-07-06

Schnelle Antwort: Laufende Dienste unter Linux auflisten

Um laufende Dienste unter Linux aufzulisten, verwenden Sie je nach Init-System einen der folgenden Befehle:

  • systemd (Ubuntu 24.04, Debian 12, CentOS/RHEL 9, Fedora 40+ und die meisten modernen Distributionen im Jahr 2026):
    systemctl list-units --type=service --state=running
    
    Oder um jede Dienst-Unit unabhängig vom Status aufzulisten:
    systemctl --type=service
    
  • SysVinit / ältere Systeme (oder um Legacy-Init-Skripte einzuschließen):
    service --status-all
    

systemd ist heute auf praktisch jeder gängigen Linux-Distribution das Standard-Init-System, weshalb systemctl list-units --type=service --state=running in der überwiegenden Mehrheit der Fälle die richtige Antwort ist. Der Befehl gibt eine Tabelle der aktuell aktiven Dienste mit ihren Zuständen LOAD, ACTIVE und SUB aus. Wenn systemctl nicht gefunden wird, läuft auf Ihrem System kein systemd — greifen Sie in diesem Fall auf service --status-all (SysVinit) oder rc-status (OpenRC) zurück.

Der Rest dieses Leitfadens erklärt jede Methode im Detail, einschließlich der Filterung nach Status, der Überprüfung von Diensten beim Systemstart und dem Auffinden von Diensten anhand des Ports.

Einführung

Linux-Dienste sind Hintergrundprozesse, die kontinuierlich laufen, um Systemaufgaben auszuführen — etwa die Verwaltung von Netzwerken, die Abwicklung von Benutzeranmeldungen oder den Betrieb von Webservern. Diese Dienste lassen sich über verschiedene Werkzeuge verwalten, je nach verwendeter Linux-Distribution und Init-System. Im Jahr 2026 ist systemd auf nahezu allen wichtigen Distributionen das Standard-Init-System, weshalb sich der Großteil dieses Leitfadens auf den Befehl systemctl konzentriert.

Zu wissen, wie man laufende Dienste auflistet, ist für Systemadministratoren und Entwickler unverzichtbar. Es hilft bei:

  • Fehlerbehebung – Überprüfen, ob ein kritischer Dienst läuft oder ausgefallen ist.
  • Leistungsüberwachung – Identifizieren ressourcenintensiver Dienste.
  • Sicherheitsaudits – Sicherstellen, dass nur die notwendigen Dienste aktiv sind.

systemctl verwenden (für systemd-basierte Systeme)

Die meisten modernen Linux-Distributionen verwenden systemd als Init-System. Dazu gehören aktuelle 2026er-Releases wie Ubuntu (16.04 bis 24.04 LTS und neuer), Debian (8 bis 12 "Bookworm" und neuer), Fedora (40+), CentOS Stream / RHEL / Rocky Linux / AlmaLinux (7 bis 9 und neuer) sowie openSUSE. Der Befehl systemctl ist auf all diesen Systemen das primäre Werkzeug zur Verwaltung und Auflistung von Diensten.

Den Status eines einzelnen Dienstes überprüfen

Um zu überprüfen, ob ein bestimmter Dienst läuft, verwenden Sie:

systemctl status <service-name>

Um beispielsweise zu prüfen, ob der Webserver nginx läuft:

systemctl status nginx

Die Ausgabe zeigt an, ob der Dienst active (running), inactive oder failed ist, zusammen mit Protokolleinträgen zur Fehlersuche.

Alle aktiven Dienste auflisten

Um alle laufenden Dienste aufzulisten, verwenden Sie:

systemctl list-units --type=service --state=running

Dieser Befehl zeigt eine Tabelle aller aktuell laufenden Dienste zusammen mit ihrem Status an.

Alle Dienste auflisten (einschließlich inaktiver)

Wenn Sie alle Dienste sehen möchten, unabhängig davon, ob sie laufen oder nicht:

systemctl list-units --type=service

Dies schließt Dienste ein, die active, inactive, failed oder in anderen Zuständen sind.

Dienste nach Status filtern

Sie können Dienste anhand ihres Status filtern:

systemctl list-units --type=service --state=failed

Dies listet nur fehlgeschlagene Dienste auf, was bei der Fehlerbehebung nützlich sein kann.

Beim Systemstart aktivierte Dienste auflisten

Um zu überprüfen, welche Dienste automatisch beim Systemstart gestartet werden:

systemctl list-unit-files --type=service | grep enabled

Beispielausgabe

Eine typische Ausgabe von systemctl list-units --type=service --state=running könnte so aussehen:

UNIT                        LOAD   ACTIVE SUB     DESCRIPTION
cron.service                loaded active running Regular background program processing daemon
networking.service          loaded active running Raise network interfaces
ssh.service                 loaded active running OpenBSD Secure Shell server
systemd-logind.service      loaded active running Login Service

Zusammenfassung

  • Verwenden Sie systemctl status <service>, um den Status eines einzelnen Dienstes zu überprüfen.
  • Verwenden Sie systemctl list-units --type=service --state=running, um aktive Dienste aufzulisten.
  • Verwenden Sie systemctl list-units --type=service, um alle Dienste anzuzeigen.
  • Verwenden Sie systemctl list-unit-files --type=service, um die beim Systemstart aktivierten Dienste anzuzeigen.

ps und grep für laufende Prozesse verwenden

Wenn Sie laufende Dienste auflisten möchten, ohne auf systemctl oder andere Dienstverwaltungswerkzeuge zurückzugreifen, können Sie ps (process status) zusammen mit grep verwenden, um bestimmte Prozesse zu finden.

Diese Methode ist nützlich, wenn:

  • Sie auf einem minimalen Linux-System arbeiten, dem die Befehle systemctl oder service fehlen.
  • Sie überprüfen möchten, ob ein bestimmter Prozess läuft, unabhängig vom Init-System.

Alle laufenden Prozesse auflisten

Der Befehl ps aux zeigt alle laufenden Prozesse auf dem System an:

ps aux

Dies erzeugt eine umfangreiche Liste aller laufenden Prozesse, einschließlich ihrer Prozess-IDs (PIDs), CPU-Auslastung, Speichernutzung und Befehlsnamen.

Nach einem bestimmten Dienst suchen

Um zu überprüfen, ob ein bestimmter Dienst läuft, verwenden Sie ps aux | grep <service-name>:

ps aux | grep nginx

Dies gibt Zeilen aus, die "nginx" enthalten, und zeigt an, ob der Dienst läuft. Die Ausgabe könnte so aussehen:

root      1034  0.0  0.3  49536  3412 ?        Ss   12:34   0:00 nginx: master process /usr/sbin/nginx
www-data  1035  0.0  0.2  49536  2824 ?        S    12:34   0:00 nginx: worker process
user      2045  0.0  0.0  14856   900 pts/0    S+   12:35   0:00 grep --color=auto nginx

Dabei gilt:

  • Die ersten beiden Zeilen zeigen an, dass der Dienst nginx läuft.
  • Die letzte Zeile (grep --color=auto nginx) ist der grep-Befehl selbst. Sie können ihn ausschließen mit:
ps aux | grep nginx | grep -v grep

Prozesse in hierarchischer Form anzeigen

Für eine übersichtlichere Darstellung verwenden Sie:

ps fax

Dies zeigt eine Baumstruktur der laufenden Prozesse und erleichtert es, zu erkennen, welche Dienste laufen und welche untergeordneten Prozesse sie haben.

Dienste anhand des Ports finden

Wenn Sie vermuten, dass ein Dienst auf einem bestimmten Port läuft, sich aber über den Dienstnamen nicht sicher sind, verwenden Sie:

netstat -tulnp | grep :80

oder, falls netstat nicht verfügbar ist:

ss -tulnp | grep :80

Dies listet den Prozess auf, der Port 80 verwendet (häufig genutzt von Webservern wie Nginx oder Apache).

Zusammenfassung

  • Verwenden Sie ps aux, um alle laufenden Prozesse aufzulisten.
  • Verwenden Sie ps aux | grep <service-name>, um nach einem bestimmten Dienst zu suchen.
  • Verwenden Sie ps fax für eine Baumansicht der Prozesse.
  • Verwenden Sie netstat -tulnp oder ss -tulnp, um Dienste zu finden, die auf bestimmten Ports laufen.
How to List Running Services on Linux

FAQ (Häufig gestellte Fragen)

1. Wie überprüfe ich, ob ein Dienst unter Linux läuft?

Je nach Linux-Distribution können Sie verschiedene Methoden verwenden:

  • Für systemd-basierte Systeme:
    systemctl status <service-name>
    
  • Für SysVinit-basierte Systeme:
    service <service-name> status
    
  • Mit ps und grep:
    ps aux | grep <service-name>
    

2. Wie liste ich alle laufenden Dienste auf?

  • Für systemd-basierte Systeme:
    systemctl list-units --type=service --state=running
    
  • Für SysVinit-basierte Systeme:
    service --status-all
    
  • Mit dem Befehl ps:
    ps aux
    

3. Wie kann ich überprüfen, ob ein Dienst beim Systemstart gestartet wird?

  • Für systemd:
    systemctl is-enabled <service-name>
    
  • Für SysVinit (RHEL-basierte Systeme):
    chkconfig --list <service-name>
    

4. Wie starte ich einen Dienst neu?

  • Für systemd-basierte Systeme:
    sudo systemctl restart <service-name>
    
  • Für SysVinit-basierte Systeme:
    sudo service <service-name> restart
    

5. Wie stoppe oder deaktiviere ich einen Dienst?

  • Um einen Dienst vorübergehend zu stoppen:
    sudo systemctl stop <service-name>
    
  • Um zu verhindern, dass ein Dienst beim Systemstart startet:
    sudo systemctl disable <service-name>
    

6. Wie finde ich heraus, welcher Dienst einen bestimmten Port verwendet?

Sie können netstat oder ss verwenden, um Dienste zu finden, die auf einem bestimmten Port laufen:

netstat -tulnp | grep :80

oder

ss -tulnp | grep :80

7. Was tun, wenn systemctl nicht gefunden wird?

Wenn Sie eine Fehlermeldung wie command not found: systemctl erhalten, bedeutet das, dass Ihr System möglicherweise kein systemd verwendet. Versuchen Sie stattdessen:

service --status-all

oder

ps aux | grep <service-name>

8. Wie liste ich fehlgeschlagene Dienste auf?

Führen Sie für systemd-basierte Systeme aus:

systemctl list-units --type=service --state=failed

9. Wie aktiviere ich die Protokollierung für einen bestimmten Dienst?

Um die Protokolle eines von systemd verwalteten Dienstes zu überprüfen, verwenden Sie:

journalctl -u <service-name>

Um die Protokolle in Echtzeit anzuzeigen:

journalctl -u <service-name> -f

10. Kann ich top oder htop verwenden, um laufende Dienste zu sehen?

Ja! top und htop bieten eine Live-Ansicht der laufenden Prozesse:

  • top verwenden:
    top
    
  • htop verwenden (interaktiv und benutzerfreundlich):
    htop
    
    (Installieren Sie es mit sudo apt install htop oder sudo yum install htop, falls es nicht verfügbar ist.)