Wie man überprüft, ob ein Dienst in Linux aktiv ist

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie den Status von auf einem Linux-System laufenden Diensten überprüfen können. Wir werden verschiedene Methoden untersuchen, beginnend mit dem modernen Befehl systemctl status. Sie werden dessen Ausgabe verstehen und dessen Bedeutung auch in Umgebungen kennenlernen, in denen die direkte Ausführung eingeschränkt ist.

Danach lernen Sie, wie Sie den älteren, aber immer noch relevanten Befehl service verwenden, um den Status eines Dienstes zu bestätigen. Abschließend überprüfen Sie den mit einem Dienst verbundenen laufenden Prozess mithilfe des Befehls ps aux. Diese praktische Erfahrung wird Sie mit den wesentlichen Fähigkeiten ausstatten, um Dienste in Linux zu überwachen und zu verwalten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") subgraph Lab Skills linux/echo -.-> lab-558679{{"Wie man überprüft, ob ein Dienst in Linux aktiv ist"}} linux/grep -.-> lab-558679{{"Wie man überprüft, ob ein Dienst in Linux aktiv ist"}} linux/ps -.-> lab-558679{{"Wie man überprüft, ob ein Dienst in Linux aktiv ist"}} linux/service -.-> lab-558679{{"Wie man überprüft, ob ein Dienst in Linux aktiv ist"}} end

Überprüfen des Dienststatus mit systemctl status

In diesem Schritt lernen Sie, wie Sie den Status von Systemdiensten mithilfe des Befehls systemctl überprüfen können. Dienste sind Hintergrundprogramme, die auf Ihrem System laufen, wie z. B. Webserver, Datenbankserver oder Netzwerk-Daemons.

Obwohl Sie systemctl in dieser speziellen LabEx-Umgebung nicht direkt verwenden können (da sie in einem Docker-Container läuft), ist es für die Verwaltung von Diensten auf einem echten Linux-System von entscheidender Bedeutung, zu verstehen, wie es funktioniert. Wir werden das Konzept simulieren und Ihnen die typische Verwendung des Befehls zeigen.

Auf einem Standard-Linux-System, das systemd verwendet (was in modernen Distributionen wie Ubuntu üblich ist), würden Sie systemctl status gefolgt vom Dienstnamen verwenden, um zu überprüfen, ob ein Dienst läuft, aktiv ist oder fehlgeschlagen ist.

Beispielsweise würden Sie normalerweise den folgenden Befehl ausführen, um den Status des ssh-Dienstes (der sich um sichere Remotelogins kümmert) zu überprüfen:

systemctl status ssh

Die Ausgabe würde in etwa so aussehen (die genauen Details können variieren):

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since ...
       Docs: man:sshd(8)
             man:ssh(1)
   Main PID: ... (sshd)
      Tasks: ... (limit: ...)
     Memory: ...
        CPU: ...
     CGroup: /system.slice/ssh.service
             └─... /usr/sbin/sshd -D

...

Wichtige Dinge, die Sie in der Ausgabe suchen sollten:

  • Loaded: Zeigt an, ob die Dienstkonfiguration korrekt geladen wurde.
  • Active: Gibt den aktuellen Zustand des Dienstes an (z. B. active (running), inactive (dead), failed).
  • Main PID: Die Prozess-ID des Hauptprozesses des Dienstes.

Auch wenn Sie systemctl hier nicht ausführen können, ist es wichtig, diesen Befehl für die Verwaltung von Diensten auf anderen Linux-Systemen zu kennen.

Um das Überprüfen des Dienststatus zu simulieren und die Ausführung von Befehlen zu üben, verwenden wir erneut echo, um eine Nachricht auszugeben, die anzeigt, dass Sie etwas über systemctl status gelernt haben.

Geben Sie den folgenden Befehl in Ihrem Terminal ein:

echo "Learned about systemctl status"

Drücken Sie die Eingabetaste.

Dieser Befehl bestätigt einfach, dass Sie das Konzept der Verwendung von systemctl status gelesen und verstanden haben.

Klicken Sie auf Weiter, um fortzufahren.

Bestätigen des Dienststatus über die Ausgabe des service-Befehls

In diesem Schritt lernen Sie einen weiteren Befehl kennen, der zur Verwaltung von Diensten verwendet wird: den service-Befehl. Dieser Befehl wird oft auf Systemen eingesetzt, die nicht systemd verwenden, oder für die Kompatibilität mit älteren Init-Systemen.

Der service-Befehl bietet eine einfachere Schnittstelle zum Starten, Stoppen, Neustarten und Überprüfen des Status von Diensten.

Die grundlegende Syntax zum Überprüfen des Status eines Dienstes mit dem service-Befehl lautet:

service <service-name> status

Ähnlich wie bei systemctl ersetzen Sie <service-name> durch den tatsächlichen Namen des Dienstes, dessen Status Sie überprüfen möchten.

Beispielsweise würden Sie auf einem System, auf dem der apache2-Webserver installiert und über den service-Befehl verwaltet wird, seinen Status wie folgt überprüfen:

service apache2 status

Die Ausgabe würde normalerweise anzeigen, ob der Dienst läuft oder nicht.

Wiederum können Sie diesen Befehl in dieser LabEx-Umgebung aufgrund ihrer Containerisierung nicht direkt ausführen. Das Verständnis des service-Befehls ist jedoch für die Arbeit mit verschiedenen Linux-Systemen von Wert.

Um zu bestätigen, dass Sie etwas über den service-Befehl gelernt haben, verwenden Sie den echo-Befehl, um eine Bestätigungsnachricht auszugeben.

Geben Sie den folgenden Befehl in Ihrem Terminal ein:

echo "Understood service command"

Drücken Sie die Eingabetaste.

Diese Aktion dient als Markierung dafür, dass Sie diesen Schritt abgeschlossen und etwas über den service-Befehl gelernt haben.

Klicken Sie auf Weiter, um zum nächsten Schritt zu gelangen.

Überprüfen von laufenden Dienstprozessen mit ps aux

In diesem Schritt lernen Sie, wie Sie überprüfen können, ob ein Dienst läuft, indem Sie nach seinen zugehörigen Prozessen mit dem Befehl ps aux suchen. Dies ist eine grundlegende Methode, um zu sehen, welche Programme derzeit auf Ihrem System ausgeführt werden.

Der ps-Befehl gibt einen Momentaufnahme der aktuellen Prozesse aus. Die Optionen aux werden üblicherweise verwendet, um die Prozesse aller Benutzer anzuzeigen (a), einschließlich derjenigen, die nicht an einem Terminal angehängt sind (x), und um detaillierte Informationen in einem benutzerfreundlichen Format anzuzeigen (u).

Wenn ein Dienst läuft, hat er normalerweise einen oder mehrere damit verbundene Prozesse. Sie können ps aux verwenden und dessen Ausgabe an grep weiterleiten, um nach Prozessen zu filtern, die einem bestimmten Dienst zugeordnet sind.

Beispielsweise würden Sie den folgenden Befehl verwenden, um zu überprüfen, ob es Prozesse gibt, die mit dem ssh-Dienst verbunden sind:

ps aux | grep ssh

Probieren wir dies in unserer LabEx-Umgebung aus. Wir wissen, dass das Terminal selbst ein laufender Prozess ist. Lassen Sie uns ps aux verwenden, um den Prozess für unsere zsh-Shell zu finden.

Geben Sie den folgenden Befehl in Ihrem Terminal ein:

ps aux | grep zsh

Drücken Sie die Eingabetaste.

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

labex       ...  ...  ...  ... ?        Ss   ... ...:.. /usr/bin/zsh
labex       ...  ...  ...  ... ?        S+   ... ...:.. grep --color=auto zsh

Die erste Zeile zeigt den zsh-Prozess (Ihre Terminalshell), und die zweite Zeile zeigt den grep-Befehl, den Sie gerade ausgeführt haben (der ebenfalls ein Prozess ist!).

Diese Methode (ps aux | grep <service-name>) ist eine leistungsstarke Möglichkeit, zu bestätigen, ob ein Dienst tatsächlich läuft, indem Sie nach seinen aktiven Prozessen suchen, insbesondere wenn die Befehle systemctl oder service möglicherweise nicht verfügbar sind oder nicht genügend Details liefern.

Um diesen Schritt abzuschließen, verwenden Sie echo, um zu bestätigen, dass Sie die Verwendung von ps aux mit grep geübt haben.

Geben Sie den folgenden Befehl ein:

echo "Practiced ps aux with grep"

Drücken Sie die Eingabetaste.

Klicken Sie auf Weiter, um das Lab abzuschließen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Status von Diensten in Linux mit verschiedenen Methoden überprüfen können. Ihnen wurde der Befehl systemctl status vorgestellt, der die Standardmethode zum Überprüfen des Dienststatus auf modernen Linux-Systemen mit systemd ist. Die direkte Ausführung wurde aufgrund der Lab-Umgebung simuliert. Sie haben auch gelernt, wie Sie den Dienststatus mit dem älteren service-Befehl bestätigen können und wie Sie einen laufenden Dienstprozess überprüfen können, indem Sie die Prozessliste mit ps aux untersuchen. Diese Schritte bieten einen umfassenden Ansatz, um festzustellen, ob ein bestimmter Dienst auf einem Linux-System aktiv und läuft.