GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So listen Sie Dienste unter Linux auf

Als Systemadministrator haben Sie es wahrscheinlich mit vielen Diensten zu tun jeden Tag.

Unter Linux Dienste werden für viele verschiedene Zwecke verwendet.

Sie können verwendet werden, um einen SSH-Server auf Ihrem Computer zu starten, oder sie können einige Operationen zu einer bestimmten Stunde oder einem bestimmten Tag ausführen.

Unabhängig davon, ob Sie eine Debian-basierte Distribution oder eine RedHat-Distribution verwenden, ist das Abfragen von Diensten sehr ähnlich.

Aufgrund der von Ihnen verwendeten Distribution und insbesondere des Initialisierungssystems (init oder systemd) müssen Sie jedoch möglicherweise andere Befehle verwenden.

In diesem Tutorial erfahren Sie, wie Sie mit Ihrem Systemmanager alle Dienste auf Ihrem Linux-Rechner auflisten können

Bestimmen Sie den verwendeten Systemmanager

Wie Sie wahrscheinlich wissen, verwenden neuere Distributionen den Systemd-Systemmanager .

Dies war jedoch nicht immer der Fall:In der Vergangenheit verwendeten die meisten Distributionen den Systemmanager SysVinit.

Folglich gibt es eigentlich zwei Möglichkeiten, Ihre Dienste auf einem Linux-System zu verwalten.

Bevor Sie die Befehle zum Auflisten von Diensten lernen, müssen Sie den Systemmanager kennen, den Sie gerade verwenden.

Um Ihren aktuellen Systemmanager zu ermitteln, verwenden Sie am einfachsten den Befehl „pstree“ und überprüfen den ersten Prozess, der jemals auf Ihrem System ausgeführt wurde.

$ pstree | head -n 5

Wenn Sie „systemd “, bedeutet dies offensichtlich, dass Sie derzeit systemd verwenden. Wenn Sie jedoch „init “, bedeutet dies, dass Sie SysVinit verwenden.

Unter Ubuntu 14.04, das noch das alte Init-System verwendet, könnte Ihr „pstree“ so aussehen.

Dienste mit systemctl auflisten

Der einfachste Weg, Dienste unter Linux aufzulisten, wenn Sie sich auf einem systemd-System befinden, ist die Verwendung des Befehls „systemctl“, gefolgt von „list-units“. Sie können die Option „–type=service“ angeben, um die Ergebnisse nur auf Dienste zu beschränken.

$ systemctl list-units --type=service

Standardmäßig zeigt Ihnen dieser Befehl nur die aktiven Dienste oder die Dienste, die auf Ihrem System ausgefallen sind. Im obigen Screenshot sind die meisten Dienste aktiv, aber der Logrotate-Dienst (rot hervorgehoben) ist als fehlgeschlagen markiert.

Toll, Sie haben gelernt, wie Sie ganz einfach Ihre Dienste auf einem Linux-Server auflisten können

Wie Sie jedoch vielleicht bemerkt haben, hatten Sie keinen Zugriff auf alle Dienste:Was ist mit inaktiven Diensten? Was ist mit Diensten, die beim Booten nicht von systemd geladen wurden?

Alle Dienste unter Linux mit list-units auflisten

Um alle Dienste aufzulisten, also aktive und inaktive, müssen Sie den Befehl „systemctl list-units“ gefolgt von der Option „–all“ verwenden.

Ebenso können Sie die Ergebnisse nur auf Dienste beschränken, indem Sie den Typfilter verwenden.

$ systemctl list-units --type=service --all

Wie Sie sehen können, werden auch inaktive Dienste aufgelistet, was praktisch sein könnte, wenn Sie Ihren Dienst einfach geschrieben und in der Liste gepflegt haben.

In diesem Fall werden nur geladene Dienste aufgelistet. Beim Booten lädt systemd Unit-Dateien und kann sich dafür entscheiden, einen bestimmten Dienst nicht zu laden, wenn es feststellt, dass er vom System nicht verwendet wird.

Folglich gibt es einen echten Unterschied zwischen „geladen “ und „installiert " Dienstleistungen. „Installierte“ Dienste bedeuten, dass Unit-Dateien in den entsprechenden Pfaden zu finden sind.

Dienste nach Staat auflisten

In einigen Fällen sind Sie möglicherweise nur an fehlgeschlagenen Diensten interessiert. Dazu können Sie den Zustand, nach dem Sie suchen, als Option des Befehls systemctl angeben.

$ systemctl list-units --state=<state>

$ systemctl list-units --state=<state1>,<state2>

Wobei „Status“ einer der folgenden Werte sein kann:aktiv, inaktiv, aktivierend, deaktivierend, fehlgeschlagen, nicht gefunden oder tot.

Wenn wir beispielsweise nur an „fehlgeschlagenen“ Diensten interessiert sind, führen wir den folgenden Befehl aus

$ systemctl list-units --state=failed

Alle Dienstdateien mit list-unit-files auflisten

Wenn Sie schließlich an „geladen interessiert sind “, „installiert “, „deaktiviert “ sowie „aktiviert ” service files gibt es noch einen anderen Befehl, der ziemlich praktisch sein könnte.

Um alle verfügbaren Dienstdateien aufzulisten, müssen Sie den Befehl „systemctl“ gefolgt von „list-unit-files“ verwenden. Optional können Sie den Typ angeben, indem Sie die Option „–type=service“ verwenden.

$ systemctl list-unit-files --type=service

Alternativ können Sie den Befehl „grep“ verwenden, um nach bestimmten Pfaden auf Ihrem System zu suchen, die möglicherweise Servicedateien enthalten.

$ ls -l /etc/systemd/system /usr/lib/systemd/service | egrep .service$

Herzlichen Glückwunsch, Sie haben gelernt, wie Sie Dienste auflisten können, wenn Ihr System systemd verwendet!

Dienste mit Dienst auflisten

Der einfachste Weg, Dienste unter Linux aufzulisten, wenn Sie sich auf einem SystemV-Init-System befinden, ist die Verwendung des Befehls „service“ gefolgt von der Option „–status-all“. Auf diese Weise wird Ihnen eine vollständige Liste der Dienste auf Ihrem System angezeigt.

$ service --status-all

Wie Sie sehen können, sind jedem Dienst Symbole in Klammern vorangestellt. Diese Symbole bedeuten :

  • + :bedeutet, dass der Dienst läuft;
  • :bedeutet, dass der Dienst nicht läuft überhaupt;
  • ? :bedeutet, dass Ubuntu nicht in der Lage war, dies zu erkennen ob der Dienst läuft oder nicht.

Warum können einige Dienste also feststellen, ob sie ausgeführt werden oder nicht, und andere nicht?

Es läuft alles auf die Implementierung des Init-Skripts hinaus. In einigen Skripten, wie zum Beispiel dem udev-Skript, können Sie sehen, dass die Datei „status ”-Befehl implementiert.

Dies ist bei „dns-clean“ nicht der Fall ”-Skript zum Beispiel, was der Grund dafür ist, dass Sie ein Fragezeichen haben, wenn Sie diesen Dienst abfragen.

SysVinit-Dienste in Ordnern auflisten

Eine andere Möglichkeit, die aktuelle Liste der Dienste aufzulisten, besteht darin, den Befehl „ls“ für die Ordner zu verwenden, die alle Skripte auf einem Linux-System enthalten, nämlich „/etc/init.d“.

$ ls -l /etc/init.d/*

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie Dienste auf einem Linux-System einfach auflisten können ob Sie systemd oder SysVinit verwenden.

Wenn Sie daran interessiert sind, Ihre eigenen Dienste zu erstellen, empfehlen wir Ihnen, sich die folgenden Ressourcen anzusehen. Sie könnten wirklich nützlich sein, um das richtig zu erreichen.

  • Schreiben eines Startskripts für Init-Systeme;
  • Starten von Diensten beim Booten mit systemd;

Wenn Sie an Linux-Systemadministration interessiert sind , wir haben einen vollständigen Abschnitt zu diesem Thema auf der Website, also schauen Sie ihn sich unbedingt an.


Linux
  1. So konfigurieren Sie die Virtualisierung unter Redhat Linux

  2. So legen Sie den System-Hostnamen unter Linux fest oder ändern ihn

  3. So verwalten und listen Sie Dienste in Linux auf

  4. So ändern Sie den Hostnamen unter Linux

  5. So listen Sie Systemd-Dienste unter Linux auf

So überprüfen Sie alle laufenden Dienste in Linux

So listen Sie Startdienste beim Booten in Linux auf

So listen Sie installierte Pakete in Linux auf

So listen Sie Festplattenpartitionen unter Linux auf

So listen Sie Benutzer unter Linux auf

So listen Sie Festplatten unter Linux auf