Website-Suche

So listen Sie alle laufenden Dienste unter Systemd unter Linux auf


Linux-Systeme stellen eine Vielzahl von Systemdiensten (z. B. Prozessverwaltung, Login, Syslog, Cron usw.) und Netzwerkdienste (z. B. Remote-Login, E-Mail, Drucker, Webhosting, Datenspeicherung) bereit , Dateiübertragung, Domänennamenauflösung (mittels DNS), dynamische IP-Adresszuweisung (mittels DHCP) und vieles mehr.

Technisch gesehen ist ein Dienst ein Prozess oder eine Gruppe von Prozessen (allgemein bekannt als Daemons), die kontinuierlich im Hintergrund laufen und auf eingehende Anfragen warten (insbesondere von Clients).

Linux unterstützt verschiedene Möglichkeiten, Dienste zu verwalten (Starten, Stoppen, Neustarten, automatischen Start beim Systemstart aktivieren usw.), normalerweise über einen Prozess- oder Dienstmanager. Die meisten, wenn nicht alle modernen Linux-Distributionen verwenden jetzt denselben Prozessmanager: systemd.

Was ist Systemd?

Systemd ist ein System- und Dienstmanager für Linux; ein Drop-in-Ersatz für den init-Prozess, der mit SysV- und LSB-Init-Skripten kompatibel ist, und der Befehl systemctl ist das primäre Werkzeug dafür systemd verwalten.

Warum laufende Dienste unter Linux auflisten?

Es ist aus mehreren Gründen wichtig, die laufenden Dienste auf Ihrem Linux-System zu kennen. Damit können Sie die Ressourcennutzung überwachen, Probleme beheben und die Systemleistung effizient verwalten. Systemd vereinfacht diese Aufgabe, indem es leistungsstarke Befehle zum Sammeln von Informationen über aktive Dienste bietet.

In diesem Handbuch demonstrieren wir den Prozess der Auflistung aller unter Systemd unter Linux ausgeführten Dienste und bieten eine umfassende Anleitung für Benutzer aller Erfahrungsstufen.

Auflisten laufender Dienste unter SystemD unter Linux

Wenn Sie den Befehl systemctl ohne Argumente ausführen, wird eine Liste aller geladenen Systemd-Einheiten (lesen Sie die Systemd-Dokumentation für weitere Informationen zu Systemd-Einheiten) einschließlich der Dienste und deren Status (ob aktiv oder nicht) angezeigt ).

systemctl 

Alle Einheiten in systemctl auflisten

Um alle geladenen Dienste auf Ihrem System aufzulisten (ob aktiv, ausgeführt, beendet oder fehlgeschlagen), verwenden Sie den Unterbefehl list-units und den Schalter --type mit dem Wert service.

systemctl list-units --type=service
OR
systemctl --type=service

Und um alle geladenen, aber aktiven Dienste aufzulisten, sowohl laufende als auch beendete, können Sie die Option --state mit dem Wert active wie folgt hinzufügen.

systemctl list-units --type=service --state=active
OR
systemctl --type=service --state=active

Laufende Dienste in systemctl auflisten

Um jedoch einen schnellen Überblick über alle laufenden Dienste (d. h. alle geladenen und aktiv ausgeführten Dienste) zu erhalten, führen Sie den folgenden Befehl aus.

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

Lassen Sie uns die Schlüsselbegriffe im Zusammenhang mit Systemd-Einheiten und deren Status untersuchen:

  • Einheit – Eine Einheit kann ein Dienst, ein Socket, ein Gerät oder verschiedene andere Einheiten sein.
  • Laden – Zeigt an, ob das Gerät geladen ist oder nicht. Eine Einheit kann geladen, aber nicht unbedingt aktiv sein.
  • Aktiv – Zeigt an, ob die Einheit aktiv läuft oder ob Probleme aufgetreten sind und sich in einem ausgefallenen oder inaktiven Zustand befindet.
  • SUB – Bietet zusätzliche Details zum spezifischen Zustand des Geräts. Bei Diensten kann es anzeigen, ob der Dienst ausgeführt wird (ausgeführt), gestoppt (beendet) wird oder auf Probleme stößt (fehlgeschlagen).
  • Beschreibung – Es hilft Benutzern, den Zweck des Geräts zu erkennen und zu verstehen, ohne sich in die detaillierten Konfigurationsdateien vertiefen zu müssen.

Erstellen Sie einen Alias für systemctl

Wenn Sie den vorherigen Befehl häufig verwenden, können Sie wie gezeigt einen Alias-Befehl in Ihrer Datei ~/.bashrc erstellen, um ihn einfach aufzurufen.

vim ~/.bashrc

Fügen Sie dann die folgende Zeile unter der Liste der Aliase hinzu, wie im Screenshot gezeigt.

alias running_services='systemctl list-units  --type=service  --state=running'

Speichern Sie die Änderungen in der Datei und schließen Sie sie. Verwenden Sie von nun an den Befehl „running_services“, um eine Liste aller geladenen, aktiv ausgeführten Dienste auf Ihrem Server anzuzeigen.

running_services	#use the Tab completion 

Finden Sie einen Port, auf dem ein Prozess lauscht

Außerdem ist ein wichtiger Aspekt der Dienste der von ihnen genutzte Port. Um den Port zu ermitteln, auf dem ein Daemon-Prozess lauscht, können Sie wie gezeigt den Befehl netstat oder ss verwenden.

Wobei das Flag -l bedeutet, dass alle Listening-Sockets gedruckt werden sollen, -t alle TCP-Verbindungen anzeigt, -u alle UDP-Verbindungen anzeigt, - n bedeutet, dass numerische Portnummern (anstelle von Anwendungsnamen) gedruckt werden, und -p bedeutet, dass der Anwendungsname angezeigt wird.

netstat -ltup | grep zabbix_agentd
OR
ss -ltup | grep zabbix_agentd

Die fünfte Spalte zeigt den Socket: Lokale Adresse:Port. In diesem Fall überwacht der Prozess zabbix_agentd den Port 10050.

Auflistung der ausgeführten Firewall-Dienste

Wenn auf Ihrem Server außerdem ein Firewall-Dienst ausgeführt wird, der steuert, wie Datenverkehr zu oder von ausgewählten Diensten oder Ports blockiert oder zugelassen wird, können Sie mithilfe des firewall-cmd< Dienste oder Ports auflisten, die in der Firewall geöffnet wurden oder ufw-Befehl (abhängig von den von Ihnen verwendeten Linux-Distributionen) wie gezeigt.

firewall-cmd --list-services   [FirewallD]
firewall-cmd --list-ports

sudo ufw status     [UFW Firewall]

Das ist alles für jetzt! In dieser Anleitung haben wir gezeigt, wie Sie laufende Dienste unter systemd unter Linux anzeigen können. Wir haben außerdem erläutert, wie Sie überprüfen können, ob der Port-Dienst lauscht, und wie Sie in der System-Firewall geöffnete Dienste oder Ports anzeigen können.

Haben Sie Ergänzungen oder Fragen? Wenn ja, erreichen Sie uns über das Kommentarformular unten.