Wie man prüft, ob ein Prozess in Linux läuft

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 werden Sie grundlegende Linux-Fähigkeiten zur Verwaltung und Überwachung von Prozessen lernen. Sie werden untersuchen, wie Sie alle laufenden Prozesse auf Ihrem System mit dem Befehl ps aux auflisten können. Dieser Befehl liefert eine Momentaufnahme der aktuellen Prozesse mit detaillierten Informationen wie Benutzer, PID, CPU- und Speicherauslastung.

Darüber hinaus werden Sie entdecken, wie Sie mithilfe des Befehls pgrep effizient bestimmte Prozesse finden können und wie Sie Einblicke in die Echtzeitaktivität von Prozessen und die Ressourcenauslastung gewinnen können, indem Sie den Befehl top nutzen. Diese Techniken sind für die Systemadministration, die Fehlerbehebung und das Verständnis der Systemleistung unerlässlich.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/ProcessManagementandControlGroup(["Process Management and Control"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/ProcessManagementandControlGroup -.-> linux/kill("Process Terminating") linux/ProcessManagementandControlGroup -.-> linux/pkill("Pattern-Based Killing") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") subgraph Lab Skills linux/kill -.-> lab-558747{{"Wie man prüft, ob ein Prozess in Linux läuft"}} linux/pkill -.-> lab-558747{{"Wie man prüft, ob ein Prozess in Linux läuft"}} linux/ps -.-> lab-558747{{"Wie man prüft, ob ein Prozess in Linux läuft"}} linux/top -.-> lab-558747{{"Wie man prüft, ob ein Prozess in Linux läuft"}} end

Auflisten laufender Prozesse mit ps aux

In diesem Schritt werden Sie lernen, wie Sie die derzeit auf Ihrem Linux-System laufenden Prozesse mit dem Befehl ps anzeigen können. Prozesse sind einfach laufende Programme. Das Verständnis, wie man Prozesse auflisten und identifizieren kann, ist eine grundlegende Fähigkeit in der Linux-Systemadministration und -Fehlerbehebung.

Der Befehl ps wird verwendet, um eine Momentaufnahme der aktuellen Prozesse anzuzeigen. Wenn er mit bestimmten Optionen verwendet wird, kann er eine Vielzahl detaillierter Informationen liefern.

Lassen Sie uns den Befehl ps mit den Optionen aux verwenden. Diese Optionen werden häufig zusammen verwendet, um alle auf dem System laufenden Prozesse in einem benutzerfreundlichen Format anzuzeigen.

  • a: Zeigt alle Prozesse an.
  • u: Zeigt den Benutzer und Eigentümer des Prozesses an.
  • x: Zeigt Prozesse an, die kein Steuerterminal haben (nützlich, um Hintergrundprozesse anzuzeigen).

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist. Standardmäßig sollten Sie sich im Verzeichnis ~/project befinden.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

ps aux

Sie werden eine lange Liste von Prozessen sehen, ähnlich wie diese (die genaue Ausgabe kann variieren):

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.1  16840  9880 ?        Ss   Jul23   0:01 /sbin/init
root           2  0.0  0.0      0     0 ?        S    Jul23   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   Jul23   0:00 [rcu_gp]
...
labex      12345  0.1  0.5 123456 54321 pts/0    Ss   HH:MM   0:00 /usr/bin/zsh
labex      12367  0.0  0.1  21000  5000 pts/0    R+   HH:MM   0:00 ps aux
...

Lassen Sie uns die Spalten, die Sie sehen, analysieren:

  • USER: Der Benutzer, dem der Prozess gehört.
  • PID: Die Prozess-ID, eine eindeutige Nummer für jeden laufenden Prozess.
  • %CPU: Der Prozentsatz der CPU-Zeit, den der Prozess verwendet.
  • %MEM: Der Prozentsatz des physischen Speichers, den der Prozess verwendet.
  • VSZ: Virtual Set Size, die Gesamtmenge des virtuellen Speichers, die vom Prozess verwendet wird.
  • RSS: Resident Set Size, die Menge des physischen Speichers, die vom Prozess verwendet wird.
  • TTY: Das Steuerterminal für den Prozess (falls vorhanden). ? bedeutet, dass es kein Steuerterminal gibt.
  • STAT: Der Prozessstatus (z.B. R für laufend, S für schlafend, Z für Zombie).
  • START: Die Zeit, zu der der Prozess gestartet wurde.
  • TIME: Die kumulative CPU-Zeit, die der Prozess verwendet hat.
  • COMMAND: Der Befehl, der den Prozess gestartet hat.

Das Durchscrollen dieser Ausgabe kann überwältigend sein. Im nächsten Schritt werden Sie lernen, wie Sie diese Ausgabe filtern können, um bestimmte Prozesse zu finden.

Klicken Sie auf Weiter, um fortzufahren.

Suchen eines bestimmten Prozesses mit pgrep

Im vorherigen Schritt haben Sie gesehen, dass ps aux eine große Menge an Ausgabe produzieren kann. Oft möchten Sie nur einen bestimmten Prozess finden. Der Befehl pgrep ist für diesen Zweck entwickelt. Er sucht nach Prozessen anhand ihres Namens und gibt ihre Prozess-IDs (PIDs) zurück.

Die grundlegende Syntax für pgrep lautet pgrep [Optionen] Muster. Das Muster ist normalerweise der Name des Prozesses, nach dem Sie suchen.

Versuchen wir, die PID des zsh-Prozesses zu finden, das ist die Shell, die Sie derzeit im Terminal verwenden.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

pgrep zsh

Auf dem Terminal sollten eine oder mehrere Zahlen angezeigt werden. Dies sind die PIDs der laufenden zsh-Prozesse.

12345

(Die genaue Zahl wird bei Ihnen anders sein).

Wenn Sie den vollständigen Befehl anzeigen möchten, der der von pgrep gefundenen PID zugeordnet ist, können Sie ihn mit dem ps-Befehl kombinieren. Die -p-Option von ps ermöglicht es Ihnen, eine PID anzugeben.

Lassen Sie uns den vollständigen Befehl für den zsh-Prozess anhand seiner PID finden. Zuerst führen Sie erneut pgrep zsh aus, um die aktuelle PID zu erhalten. Nehmen wir für dieses Beispiel an, dass die PID 12345 ist (ersetzen Sie 12345 durch die tatsächliche PID, die Sie erhalten).

Verwenden Sie jetzt ps -p gefolgt von der PID:

ps -p 12345

Sie werden eine Ausgabe ähnlich wie diese sehen:

    PID TTY          TIME CMD
  12345 pts/0    00:00:00 zsh

Dies bestätigt, dass die PID 12345 dem zsh-Befehl entspricht.

pgrep ist ein schneller Weg, die PID eines Prozesses zu finden, wenn Sie seinen Namen kennen. Dies ist besonders nützlich, wenn Sie die PID für andere Befehle benötigen, wie z.B. das Beenden eines Prozesses (das Sie in einem zukünftigen Lab lernen werden).

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

Überwachen von Prozessdetails mit dem top-Befehl

In diesem Schritt werden Sie über den top-Befehl lernen, der eine dynamische, Echtzeit-Ansicht der auf Ihrem System laufenden Prozesse bietet. Während ps aux Ihnen eine Momentaufnahme gibt, aktualisiert top kontinuierlich und zeigt Ihnen, welche Prozesse die meiste CPU und den meisten Speicher nutzen.

Der top-Befehl ist sehr nützlich für die Überwachung der Systemleistung und die Identifizierung von Prozessen, die möglicherweise übermäßig viele Ressourcen verbrauchen.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

top

Ihr Terminal wird sich ändern und eine ständig aktualisierende Liste von Prozessen anzeigen. Die Ausgabe sieht ähnlich wie folgt aus:

top - HH:MM:SS up  X days, HH:MM,  X users,  load average: X.XX, X.XX, X.XX
Tasks: XXX total,   X running, XXX sleeping,   X stopped,   X zombie
%Cpu(s):  X.X us,  X.X sy,  X.X ni, XX.X id,  X.X wa,  X.X hi,  X.X si,  X.X st
MiB Mem :  XXXX.X total,  XXXX.X free,  XXXX.X used,  XXX.X buff/cache
MiB Swap:  XXXX.X total,  XXXX.X free,  XXXX.X used. XXXX.X avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  12345 labex     20   0  123456  54321  32100 S   0.1   0.5   0:00.10 zsh
  12367 labex     20   0   21000   5000   3000 R   0.0   0.1   0:00.05 top
  ...

Schauen wir uns die wichtigsten Bereiche der top-Ausgabe an:

  • Zusammenfassungsbereich (oben): Dieser Abschnitt zeigt Systemzusammenfassungsinformationen, darunter:

    • Aktuelle Uhrzeit und Systemlaufzeit.
    • Anzahl der angemeldeten Benutzer.
    • Lastauslastung (durchschnittliche Anzahl der Prozesse, die in den letzten 1, 5 und 15 Minuten auf die Ausführung gewartet haben).
    • Gesamtzahl der Aufgaben (Prozesse) und deren Zustände (laufend, schlafend, gestoppt, Zombie).
    • Aufteilung der CPU-Nutzung (Benutzer, System, Leerlauf usw.).
    • Speichernutzung (gesamt, frei, belegt, Puffer/Cache).
    • Verwendung des Swap-Speichers.
  • Prozesslistenbereich (unten): Dieser Abschnitt listet einzelne Prozesse auf, standardmäßig sortiert nach CPU-Nutzung. Die Spalten sind ähnlich wie bei ps aux, aber top aktualisiert sie in Echtzeit. Wichtige Spalten sind:

    • PID: Prozess-ID.
    • USER: Eigentümer des Prozesses.
    • %CPU: CPU-Nutzungsanteil in Prozent.
    • %MEM: Speichernutzungsanteil in Prozent.
    • COMMAND: Der Befehlsname.

Während top läuft, können Sie mit verschiedenen Tasten interagieren:

  • Drücken Sie q, um top zu beenden.
  • Drücken Sie M, um die Prozessliste nach Speichernutzung zu sortieren.
  • Drücken Sie P, um die Prozessliste nach CPU-Nutzung zu sortieren (dies ist die Standardeinstellung).
  • Drücken Sie k, um einen Prozess zu beenden (Sie werden nach der PID gefragt). Seien Sie bei diesem Vorgehen vorsichtig!

Nehmen Sie sich einen Moment Zeit, um die Prozesse zu beobachten und wie sich die CPU- und Speichernutzung ändert. Sie werden den top-Prozess selbst ganz oben in der Liste sehen, da er aktiv die CPU nutzt, um die Anzeige zu aktualisieren.

Wenn Sie mit der Exploration von top fertig sind, drücken Sie q, um zu beenden und zum normalen Terminal-Eingabeaufforderung zurückzukehren.

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

Zusammenfassung

In diesem Lab haben Sie grundlegende Techniken gelernt, um zu überprüfen, ob ein Prozess in Linux läuft. Sie haben begonnen, den ps aux-Befehl zu verwenden, um alle laufenden Prozesse auf dem System aufzulisten. Dabei haben Sie die verschiedenen Spalten wie USER, PID, %CPU und %MEM verstanden, die eine Momentaufnahme der Prozessaktivität liefern.

Anschließend haben Sie untersucht, wie Sie mithilfe des pgrep-Befehls effizient einen bestimmten Prozess finden können. Dieser Befehl sucht nach Prozessen anhand ihres Namens oder anderer Attribute und gibt ihre Prozess-ID (PID) zurück. Schließlich haben Sie gelernt, wie Sie mithilfe des top-Befehls die Prozessdetails in Echtzeit überwachen können. Dieser Befehl bietet eine dynamische Ansicht der Systemressourcenauslastung und der Statistiken einzelner Prozesse, sodass Sie die CPU- und Speichernutzung beobachten können.