Welche Befehle werden verwendet, um Linux-Dienste anzuzeigen?
Die folgenden Befehle können verwendet werden, um Linux-Dienste anzuzeigen:
systemctl
systemctl
ist ein Befehl zum Verwalten von Systemdiensten. Er kann verwendet werden, um Dienste zu starten, zu stoppen, neu zu starten und ihren Status anzuzeigen.
Um eine Liste aller laufenden Dienste anzuzeigen, verwende:
systemctl list-unit-files
Um den Status eines bestimmten Dienstes anzuzeigen, verwende:
systemctl status <Dienstname>
service
Der Befehl service
wird verwendet, um Dienste zu verwalten. Er kann verwendet werden, um Dienste zu starten, zu stoppen, neu zu starten und ihren Status anzuzeigen.
Um eine Liste aller laufenden Dienste anzuzeigen, verwende:
service --status-all
Um den Status eines bestimmten Dienstes anzuzeigen, verwende:
service <Dienstname> status
ps
Der Befehl ps
wird verwendet, um laufende Prozesse anzuzeigen. Er kann verwendet werden, um Dienste anzuzeigen, die gerade ausgeführt werden.
Um eine Liste aller laufenden Dienste anzuzeigen, verwende:
ps -A | grep systemd
top
Der Befehl top
wird verwendet, um laufende Prozesse anzuzeigen. Er kann verwendet werden, um Dienste anzuzeigen, die gerade ausgeführt werden.
Um eine Liste aller laufenden Dienste anzuzeigen, verwende:
top -c
Wie zeige ich alle laufenden Dienste an?
Um alle derzeit auf deinem Linux-System ausgeführten Dienste anzuzeigen, kannst du folgende Befehle verwenden:
systemctl list-units
Dieser Befehl listet alle Systemdienste auf, sowohl laufende als auch gestoppte. Er gibt folgende Informationen aus:
- Dienstname
- Anzeigename
- Status (aktiv, inaktiv, gestoppt)
- Geladener Zustand (geladen, nicht geladen, maskiert)
Beispiel:
$ systemctl list-units
UNIT LOAD ACTIVE SUB DESCRIPTION
accuweather-watcher.service loaded active running AccuWeather Watcher
accounts-daemon.service loaded active running Accounts Service
AccountsService.service loaded active running Accounts Service
alsa-state.service loaded active running ALSA state management service
service –status-all
Dieser Befehl gibt den Status aller Dienste aus, die in /etc/init.d
definiert sind. Er zeigt an, ob jeder Dienst läuft oder gestoppt ist.
Beispiel:
$ service --status-all
[ + ] acpid
[ - ] anacron
[ + ] atd
[ - ] auditd
[ + ] avahi-daemon
ps aux | grep systemd
Dieser Befehl listet alle Prozesse auf, die von systemd gestartet wurden, einschließlich laufender Dienste. Er gibt folgende Informationen aus:
- Prozess-ID (PID)
- Benutzer, der den Prozess gestartet hat
- Ausgeführter Befehl
- Status des Prozesses
Beispiel:
$ ps aux | grep systemd
systemd 1 root Ss 0:00 /lib/systemd/systemd
systemd-journal 6 root S< 0:00 /usr/lib/systemd/systemd-journald
systemd-udevd 7 root S< 0:00 /lib/systemd/systemd-udevd
systemd-tmpfiles 8 root S< 0:00 /lib/systemd/systemd-tmpfiles
systemd-resolved 9 root S< 0:00 /lib/systemd/systemd-resolved
Wie zeige ich den Status eines bestimmten Dienstes an?
Um den Status eines bestimmten Dienstes anzuzeigen, verwendest du den folgenden Befehl:
systemctl status DIENSTNAME
Ersetze dabei DIENSTNAME
durch den Namen des Dienstes, den du überprüfen möchtest.
Der Ausgabe des Befehls enthält Informationen zum Status des Dienstes, einschließlich:
-
Active: Der aktuelle Status des Dienstes (z. B.
active
,inactive
,failed
). -
State: Der Zustand des Dienstes (z. B.
running
,stopped
,restarting
). - Main PID: Die Prozess-ID des Hauptprozesses des Dienstes.
- CGroup: Die Control Group, zu der der Dienst gehört.
- Tasks: Die Anzahl der Aufgaben, die der Dienst ausführt.
- Age: Die Zeit seit dem letzten Start des Dienstes.
-
Unit File State: Der Status der Unit-Datei des Dienstes (z. B.
enabled
,disabled
).
Troubleshooting
Wenn du beim Anzeigen des Status eines Dienstes auf Probleme stößt, kannst du folgende Schritte zur Fehlerbehebung ausführen:
- Überprüfe, ob der Dienstname korrekt ist.
- Vergewissere dich, dass der Dienst läuft.
- Überprüfe, ob du über die erforderlichen Berechtigungen verfügst.
- Konsultiere die Dokumentation deines Linux-Distribution oder Sysadmins, um Hilfe zu erhalten.
Wie zeige ich ausführliche Informationen zu einem Dienst an?
Neben dem Status kannst du auch weitere Details über einen bestimmten Dienst abrufen, darunter:
- Beschreibung: Eine kurze Erklärung des Dienstes.
- Pfad: Der Speicherort der ausführbaren Datei des Dienstes.
- PID: Die Prozess-ID des Dienstes, falls er läuft.
- Benutzer: Der Benutzer, unter dem der Dienst läuft.
- Gruppe: Die Gruppe, zu der der Dienst gehört.
- Startoptionen: Die Optionen, die beim Starten des Dienstes verwendet werden.
Schritte
Verwende den systemctl-Befehl mit der Option status:
systemctl status <dienstname>
Beispiel: Um detaillierte Informationen über den SSH-Dienst anzuzeigen, führe den folgenden Befehl aus:
systemctl status ssh
Zusätzliche Befehle
-
systemctl cat
: Zeigt die Systemd-Einheitsdatei des Dienstes an, die ausführlichere Informationen enthält. -
sudo service
status: Zeigt Informationen über den Dienst unter Verwendung des traditionellen SysV- init-Systems an (verfügbar in älteren Linux-Distributionen).
Tipps
- Verwende die –no-pager-Option mit systemctl, um die Ausgabe direkt im Terminal anzuzeigen, anstatt sie durch einen Pager zu leiten.
- Du kannst auch die Option –full verwenden, um noch ausführlichere Informationen anzuzeigen.
Wie zeige ich Dienste an, die beim Systemstart aktiviert werden?
Damit dein System reibungslos läuft, werden bestimmte Dienste beim Startvorgang automatisch aktiviert. Diese Dienste sind für wichtige Funktionen wie Netzwerk- oder Firewall-Verwaltung verantwortlich.
systemctl list-unit-files
Der Befehl systemctl list-unit-files
zeigt eine Liste aller Dienste an, die auf deinem System installiert sind. Um nur die Dienste anzuzeigen, die beim Systemstart aktiviert sind, kannst du den folgenden Befehl verwenden:
systemctl list-unit-files --type=service --state=enabled
systemctl list-enabled
Ein weiterer Befehl zum Anzeigen aktivierter Dienste ist systemctl list-enabled
. Dieser Befehl gibt eine Liste der Dienste aus, die für die Ausführung beim Systemstart aktiviert sind.
systemctl list-enabled
cat /etc/systemd/system/multi-user.target.wants/*
Du kannst auch die Datei /etc/systemd/system/multi-user.target.wants/
durchsuchen, in der die Symbolic Links zu den aktivierten Diensten aufgelistet sind.
cat /etc/systemd/system/multi-user.target.wants/*
Wie zeige ich Dienste an, die deaktiviert sind?
Möchtest du die Liste der Dienste einsehen, die auf deinem Linux-System deaktiviert sind? Mit den im Folgenden beschriebenen Befehlen kannst du im Handumdrehen auf diese Informationen zugreifen:
Systemd
Wenn du eine moderne Linux-Distribution wie Ubuntu, CentOS oder Fedora verwendest, die systemd als Init-System nutzt, kannst du den folgenden Befehl verwenden:
systemctl list-unit-files --state=inactive
Dieser Befehl listet alle Dienste auf, die auf dem System installiert sind, sich aber derzeit im deaktivierten Zustand befinden.
SysVinit
Verwendest du eine ältere Linux-Distribution, die SysVinit als Init-System nutzt, kannst du den folgenden Befehl verwenden:
chkconfig --list --disable
Dieser Befehl listet alle Dienste auf, die beim Systemstart deaktiviert werden sollen.
Zusätzliche Möglichkeiten
Neben den oben genannten Befehlen kannst du auch den folgenden Befehl verwenden, um Dienste zu filtern und nur die deaktivierten anzuzeigen:
systemctl list-units --state=inactive --no-pager
Dieser Befehl ähnelt dem ersten Befehl, filtert aber die Ausgabe, sodass keine zusätzliche Paginierung erforderlich ist. Du kannst auch die Option --all
verwenden, um alle Dienste anzuzeigen, einschließlich derjenigen, die nicht installiert sind:
systemctl list-unit-files --state=inactive --all
Wie filtere ich die angezeigten Dienste?
Um die angezeigten Dienste zu filtern, kannst du die Option --regex
des systemctl
-Befehls verwenden. Diese Option ermöglicht es dir, nach Diensten zu suchen, deren Name oder Beschreibung mit einem angegebenen regulären Ausdruck übereinstimmt.
Syntax:
systemctl list-units --regex "FILTER"
Beispiele:
- Um alle Dienste anzuzeigen, deren Name "httpd" enthält:
systemctl list-units --regex "httpd"
- Um alle Dienste anzuzeigen, deren Beschreibung "Webserver" enthält:
systemctl list-units --regex ".*Webserver.*"
- Um alle Dienste anzuzeigen, deren Name mit "a" beginnt und mit "d" endet:
systemctl list-units --regex "^a.*d$"
Du kannst auch mehrere reguläre Ausdrücke kombinieren, um komplexere Filter zu erstellen. Verwende dazu das "|" (Oder)- oder "&" (Und)-Zeichen, um die Bedingungen zu verknüpfen.
Beispiel:
Um alle Dienste anzuzeigen, deren Name "httpd" enthält oder deren Beschreibung "Datenbank" enthält:
systemctl list-units --regex "httpd|.*Datenbank.*"
So zeigen Sie Dienste unter verschiedenen Linux-Distributionen an
Die Befehle zum Anzeigen von Diensten können je nach verwendeter Linux-Distribution variieren. Hier sind die häufigsten Befehle für gängige Distributionen:
Ubuntu und Debian
-
systemctl list-unit-files
-
systemctl list-units
Red Hat Enterprise Linux (RHEL) und CentOS
-
systemctl list-unit-files
-
systemctl list-units
SUSE Enterprise Linux (SLES)
-
systemctl list-unit-files
-
systemctl list-units
Arch Linux
-
systemctl list-unit-files
-
systemctl list-units
Gentoo
-
systemctl list-unit-files
-
systemctl list-units
Hinweis: Unter Gentoo ist für den Zugriff auf den systemctl
-Befehl die Installation des systemd
-Pakets erforderlich.
Zusätzlich zu diesen universellen Befehlen bieten einige Distributionen möglicherweise eigene Befehle zum Verwalten von Diensten an. Beispielsweise bietet Ubuntu den Befehl service
an, mit dem du Dienste nach ihrem Namen auflisten kannst.
Neben den Befehlen zur Auflistung von Diensten verfügen viele Distributionen auch über Tools mit grafischer Benutzeroberfläche (GUI) zum Verwalten von Diensten. Unter Ubuntu kannst du beispielsweise das Dienstprogramm "Diensteverwaltung" verwenden, um Dienste zu starten, zu stoppen und zu konfigurieren.
Troubleshooting: Probleme bei der Anzeige von Diensten lösen
Kein Zugriff auf den Dienstbefehl
Wenn du die Dienstinformationsbefehle nicht ausführen kannst, überprüfe Folgendes:
-
Berechtigungen: Stelle sicher, dass du über die erforderlichen Berechtigungen zum Anzeigen von Diensten verfügst. Verwende dafür den Befehl
sudo
, z. B.:
sudo systemctl list-unit-files
-
Kompatibilität: Vergewissere dich, dass der Dienstbefehl für deine Linux-Distribution kompatibel ist. Beispielsweise verwendet Ubuntu den Befehl
systemctl
, während andere Distributionen möglicherweiseservice
oderinit
verwenden.
Fehlende Dienste
Wenn bestimmte Dienste nicht angezeigt werden, prüfe Folgendes:
-
Aktivierter Status: Einige Dienste sind möglicherweise nicht aktiviert und können daher nicht angezeigt werden. Aktiviere sie mit dem Befehl
systemctl enable
, z. B.:
sudo systemctl enable cups
-
Ladezustand: Dienste, die nicht geladen sind, werden nicht angezeigt. Lade sie mit dem Befehl
systemctl load
, z. B.:
sudo systemctl load cups
Fehlermeldungen
Wenn beim Anzeigen von Diensten Fehlermeldungen auftreten, versuche Folgendes:
- Syntaxfehler: Überprüfe die Syntax deiner Befehle sorgfältig auf Tippfehler oder fehlende Optionen.
-
Unbekannter Dienst: Stelle sicher, dass der angegebene Dienstname korrekt ist. Du kannst die Liste der verfügbaren Dienste mit dem Befehl
systemctl list-unit-files
abrufen. - Systemprobleme: Systemprobleme können die Anzeige von Diensten beeinträchtigen. Überprüfe die Systemprotokolle auf Fehlermeldungen und versuche, das Problem zu beheben.
Andere Ressourcen
Wenn du weiterhin Probleme bei der Anzeige von Diensten hast, kannst du zusätzliche Hilfestellung in folgenden Ressourcen finden: