Gängige Linux-Distributionen setzen auf Systemd, ein Init-System, das auf der Aktivierung und Deaktivierung von Service-Dateien basiert. Wenn Sie diese Service-Dateien einsehen möchten, aber unsicher sind, wie, ist der Befehl `systemctl` Ihr Werkzeug der Wahl.
In dieser Anleitung beleuchten wir verschiedene Methoden, um Systemd-Service-Dateien unter Linux aufzulisten. Stellen Sie zunächst sicher, dass Ihr Linux-System Systemd verwendet. Öffnen Sie dann ein Terminalfenster und folgen Sie den Anweisungen.
Systemd zum Anzeigen aktiver Dienste nutzen
Wer regelmäßig mit Systemd arbeitet, möchte irgendwann wissen, welche Dienste beim Start des Linux-Systems aktiv sind. Das Auflisten aktiver Dienste ist einfach und mit dem Befehl `systemctl –type=service –state=running` möglich.
Dieser Befehl gibt eine Tabelle aller aktiven Dienste zusammen mit einer kurzen Beschreibung aus. Um diesen Befehl auszuführen, öffnen Sie ein Terminalfenster und geben Sie den folgenden Befehl ein:
systemctl --type=service --state=running
Die umfangreiche Tabelle kann bei der Suche nach einem spezifischen Dienst unübersichtlich sein. Hier kommt die Kombination von `systemctl` mit `grep` als Filtermechanismus ins Spiel.
Um zum Beispiel zu prüfen, ob „snapd.service“ aktiv ist, verwenden Sie `systemctl –type=service –state=running | grep ’snapd’`. Die Ausgabe zeigt dann nur den Snapd-Dienst.
systemctl --type=service --state=running | grep 'snapd'
Wenn Sie die Ausgabe der Tabelle für später in einer Textdatei speichern möchten, nutzen Sie diesen Befehl:
systemctl --type=service --state=running > ~/active-services.txt
Die Textdatei können Sie jederzeit mit diesem `cat`-Befehl einsehen:
cat ~/active-services.txt
Systemd zum Anzeigen inaktiver Dienste verwenden
Die Auflistung aktiver Systemd-Dienste ist nützlich, aber wie sieht es mit inaktiven Diensten aus? Auch diese können Sie anzeigen lassen. Gehen Sie wie folgt vor: Öffnen Sie ein Terminalfenster.
Geben Sie dort den Befehl `systemctl –type=service` ein, ersetzen Sie jedoch im Parameter `–state=` „running“ durch „inactive“. So erhalten Sie eine Übersicht über die inaktiven Systemd-Dienste.
systemctl --type=service --state=inactive
Ähnlich wie bei den aktiven Diensten erstellt Systemd eine übersichtliche Tabelle, die die inaktiven und nicht verwendeten Dienste anzeigt. Verwenden Sie auch hier `grep`, um die Tabelle nach einem bestimmten Dienst zu durchsuchen.
Um zu ermitteln, ob „updatedb.service“ inaktiv ist, kombinieren Sie `systemctl –type=service –state=inactive` mit dem folgenden `grep`-Befehl:
systemctl --type=service --state=inactive | grep 'updatedb.service'
Um alle inaktiven Systemd-Service-Dateien in einer Textdatei zu speichern, nutzen Sie diesen Befehl:
systemctl --type=service --state=inactive > ~/inactive-services.txt
Zum Anzeigen dieser Textdatei direkt im Terminal verwenden Sie `cat`:
cat ~/inactive-services.txt
Systemd zum Anzeigen aller installierten Dienste einsetzen
Möchten Sie alle installierten Systemd-Dienste einsehen, unabhängig von ihrem Status? Dann verwenden Sie den Befehl `systemctl list-unit-files –type=service` ohne den Parameter `–state`. Durch das Weglassen von `–state` listet Systemd jede einzelne Service-Datei auf Ihrem System auf.
systemctl list-unit-files --type=service
Nach Ausführung dieses Befehls erhalten Sie eine Tabelle mit jeder Service-Datei auf dem System. Diese Tabelle können Sie nach der gewünschten Datei durchsuchen.
Falls Sie eine bestimmte Datei nicht finden, nutzen Sie wieder `grep` in Kombination mit `systemctl list-unit-files –type=service`, um die Tabelle zu filtern:
systemctl list-unit-files --type=service | grep 'my-service'
Um alle Systemd-Dienste in einer Textdatei zu speichern, verwenden Sie:
systemctl list-unit-files --type=service > ~/service-files.txt
Die Textdatei können Sie mit diesem Befehl einsehen:
cat ~/service-files.txt
Systemd zur Anzeige des Status einzelner Dienste verwenden
Neben der Auflistung aller Dienste ist es auch hilfreich, den Status einzelner Dienste zu kennen. Hier ist, wie es geht:
Öffnen Sie ein Terminalfenster und geben Sie den Befehl `systemctl status` gefolgt vom Namen des Dienstes ein. Um zum Beispiel den Status von „NetworkManager.service“ zu ermitteln, nutzen Sie:
systemctl status NetworkManager
Wenn Sie die Statusausgabe in einer Textdatei speichern möchten, verwenden Sie:
systemctl status MyService > ~/MyService-status.txt
Zum Anzeigen der Datei verwenden Sie:
cat ~/MyService-status.txt