Bei Verwendung einer beliebigen Linux-Distribution werden einige Prozesse und Dienste parallel ausgeführt. Einige können auch ohne das Wissen der Benutzer im Hintergrund ausgeführt werden. Das Ausführen unnötiger Dienste kann einen Großteil der Systemressourcen verbrauchen oder auch ein Sicherheitsproblem darstellen, wenn keine Maßnahmen in Betracht gezogen werden.
Daher müssen Sie alle laufenden Dienste auf Ihrem System kennen. In diesem Artikel sehen wir uns alle Möglichkeiten an, wie Sie laufende Dienste auf Ihrem Linux-Rechner auflisten können.
Wie man laufende Dienste unter Linux überprüft
Lassen Sie uns zunächst ein gutes Verständnis der Linux-Dienste erlangen. Wenn ein Dienst eine Initialisierung hat – Skript , dann hat es drei Status:
- beginnen
- Stopp
- neu starten
Alle, die mit dem – Dienst ausgeführt werden Befehl. Zum Beispiel, um den network-manager neu zu starten führen Sie den folgenden Befehl aus:
sudo service network-manager restart
Der Dienstbefehl verweist auf jeden Dienst mithilfe des in /etc/init.d gespeicherten Init-Skripts für Ubuntu und jede andere Debian-basierte Distribution und etc/rc.d/init.d für RedHat-basierte Linux-Distributionen. Einige Dienstnamen variieren von einer Distribution zur anderen. Beispielsweise ist der Apache-Webserver-Dienst httpd auf CentOS und Apache2 auf Ubuntu.
System V(SysV) | Emporkömmling | Systemd
Viele Linux-Distributionen fallen unter die folgenden Init-Systeme:
- System V, das das anfängliche Init-System war.
- Neuling
- systemd, das zum Zeitpunkt des Schreibens dieses Artikels das neueste Init-System ist.
System V (SysV)
System V oder allgemein bekannt als SysV ist ein altes Init-System, das von älteren Linux-Distributionen verwendet wird und auf das ursprüngliche Unix zurückgeht. SysV verwaltet den Startvorgang mithilfe des Shell-Skripts in /etc/init*. Falls Sie /etc/init.d/sshd verwenden starten, um einen Dienst zu starten oder zu stoppen; dann verwenden Sie auf einem System V-System.
Init-System neu starten
Es ist ein ereignisbasiertes Init-System, das als Ersatz für den /sbin/init-Daemon diente. Das Upstart-Init-System wurde verwendet, um das Starten und Stoppen von Diensten während des Bootens und Herunterfahrens zu verwalten und sie zu überwachen, während das System läuft. Upstart wurde ursprünglich für die Ubuntu-Linux-Distribution entwickelt, um das alte System V zu ersetzen, das in anderen älteren Distributionen verwendet wurde.
Systemd
Es ist das neue Init-System, zu dem die meisten Linux-Distributionen wechseln. Es wurde entwickelt, um den Startvorgang zu beschleunigen, Abhängigkeiten zu verwalten und vieles mehr. Falls Sie systemctl-Neustart von sshd verwenden start, um einen Dienst zu starten oder zu stoppen, dann verwenden Sie auf einem Systemd-System.
Prüfen Sie alle laufenden Dienste in einem System V(SysV)-Init-System
Schauen wir uns einige der Terminal-Befehle an, die Sie verwenden können, um alle laufenden Dienste in einem SysV-Init-System aufzulisten.
service --status-all
Der obige Befehl listet alle laufenden Dienste in Ihrem System auf. Falls viele Dienste ausgeführt werden, können Sie zusätzliche Parameter – more verwenden und weniger um die Dienste in einer organisierten und übersichtlichen Ansicht aufzulisten.
service --status-all | less
service --status-all | more
Führen Sie den folgenden Befehl aus, um nur Dienste aufzulisten, die derzeit auf dem System ausgeführt werden:
service --status-all | grep running
Um den Status eines bestimmten Dienstes anzuzeigen, führen Sie den folgenden Befehl aus:
service --status-all | grep [service_name] e.g service --status-all | grep httpd
Alternativ können Sie den folgenden Befehl ausführen, um den Status eines bestimmten Dienstes anzuzeigen.
service httpd status
Führen Sie den folgenden Befehl aus, um alle beim Booten aktivierten Dienste aufzulisten:
chkconfig --list
Überprüfen Sie alle laufenden Dienste in einem Upstart-Init-System
Führen Sie den folgenden Befehl aus, um alle Dienste aufzulisten, die auf einem Linux-System ausgeführt werden, auf dem das Upstartinit-System ausgeführt wird:
initctl list
Überprüfen Sie alle laufenden Dienste in einem Systemd-Init-System
Um alle laufenden Dienste auf einem Linux-System aufzulisten, auf dem das Systemd-Init-System ausgeführt wird, führen Sie den folgenden Befehl aus:
systemctl
Aus dem obigen Befehl sehen wir, dass die Daten in fünf Spalten angezeigt werden, nämlich UNIT, LOAD, ACTIVE, SUB und DESCRIPTION. Schauen wir uns an, wofür jede Spalte steht:
- UNIT – Zeigt den entsprechenden Systemd-Einheitennamen an.
- LOAD – Diese Spalte zeigt an, ob die aktuelle Unit in den Speicher geladen ist oder nicht.
- ACTIVE – Diese Spalte zeigt an, ob die Einheit in Gebrauch (aktiv) ist oder nicht.
- SUB – Beschreibt den Betriebszustand einer bestimmten Einheit.
- BESCHREIBUNG – Gibt eine detaillierte Beschreibung einer bestimmten Einheit.
Sie können auch laufende Dienste basierend auf ihrem Typ auflisten, indem Sie den folgenden Befehl verwenden:
systemctl list-units --type service
Sie können Dienste auch basierend auf ihrem aktuellen Status auflisten. Es ist der Ausgabe des vorherigen Befehls relativ ähnlich, aber etwas einfacher.
systemctl list-unit-files --type service
Führen Sie den folgenden Befehl aus, um den Status eines bestimmten Dienstes aufzulisten:
systemctl status [service_name] e.g systemctl status acpid.path
Führen Sie den folgenden Befehl aus, um nur Dienste aufzulisten, die derzeit auf dem System ausgeführt werden:
systemctl | grep running
Führen Sie den folgenden Befehl aus, um alle beim Booten aktivierten Dienste aufzulisten:
systemctl list-unit-files | grep enabled
Mit dem Befehl systemd-cgtop können Sie auch die obersten Kontrollgruppen und ihre Nutzung der Systemressourcen wie E/A, CPU, Tasks und Arbeitsspeicher anzeigen.
systemd-cgtop
Wir können auch pstree verwenden um alle laufenden Dienste im System aufzulisten. Pstree erfasst diese Informationen von Systemd Systemausgabe.
pstree
Der pstree kann auch mit System V int verwendet werden. Es erfasst die Ausgabe des SysVinit-Systems.
pstree
Sie können auch chkservice verwenden Dienstprogramm zum Überprüfen aller laufenden Dienste in einem Systemd-System. Es ist nicht vorinstalliert. Sie können jedoch mit dem folgenden Befehl über das Terminal installieren:
sudo apt-get install chkservice
Um chkservice zu starten, Führen Sie den folgenden Befehl aus. Beachten Sie, dass Sie Superuser-Privilegien benötigen.
sudo chkservice
Um alle Funktionen dieses fantastischen Tools anzuzeigen, drücken Sie auf [? ] Schlüssel. Es öffnet das Hilfemenü.
Schlussfolgerung
Dies sind einige der Befehle und Dienstprogramme, mit denen Sie alle laufenden Dienste auf Ihrem Linux-System überprüfen können. Wenn Sie einen Befehl oder ein Tool haben, das wir in diesem Beitrag nicht besprochen haben, können Sie es unseren Lesern gerne im Kommentarbereich mitteilen.