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

20 ps-Befehlsbeispiele zur Überwachung von Linux-Prozessen

Die Überwachung eines Linux-Systems ist eine der wichtigsten Aufgaben, die jeder Linux-Benutzer oder Systemadministrator rund um die Uhr ausführen muss, um sicherzustellen, dass das System reibungslos läuft und Engpässe vermieden werden. Linux wird mit einigen integrierten Tools geliefert, die Ihnen bei der Überwachung Ihres Systems helfen können. Einer davon ist der ps (processes status )-Befehl, der speziell die laufenden Prozesse und unter anderem mit den Prozessen verbundene Metriken wie den Prozentsatz CPU überwacht und Erinnerung Verwertung. Der Befehl ps liest das /proc-Dateisystem, das ein RAM-basiertes oder virtuelles Dateisystem ist.

In dieser Anleitung tauchen wir tiefer ein und zeigen Ihnen 20 der am häufigsten verwendeten ps-Befehle.

1) Auflistungsprozess in der Shell

Die einfachste Form des Befehls ps unter Linux listet die laufenden Prozesse in der aktuellen Shell auf. Dies kann unten veranschaulicht werden.

[[email protected] ~]$ ps PID TTY          TIME CMD 1437 pts/0    00:00:00 bash 1465 pts/0    00:00:00 ps[[email protected] ~]$

Lassen Sie uns ein paar Begriffe definieren:

  • PID:Dies ist die Prozess-ID.
  • TTY:Dies bezieht sich auf das Terminal, das den Prozess gestartet hat und steuert.
  • ZEIT:Dies ist die Zeit / Gesamtzeit, die ein Prozess gelaufen ist.
  • CMD:Name des Befehls, der den Prozess gestartet hat.

2) Prozesse auflisten, die einem Terminal zugeordnet sind

Dies ähnelt dem Auflisten der Prozesse in der Shell. Führen Sie den folgenden Befehl aus, um die Prozesse aufzulisten, die dem Terminal zugeordnet sind, das Sie gerade ausführen:

[[email protected] ~]$ ps -T  PID  SPID TTY          TIME CMD 1437  1437 pts/0    00:00:00 bash13357 13357 pts/0    00:00:00 ps[[email protected] ~]$ 

3) Anzeige aller laufenden Prozesse auf Ihrem System

Um einen Überblick über alle laufenden Prozesse auf Ihrem Linux-System zu erhalten, verwenden Sie das -A-Flag wie gezeigt:

[[email protected] ~]$ ps -A

Alternativ können Sie auch das –e-Flag verwenden wie gezeigt. Sie erhalten immer noch ähnliche Ergebnisse.

[[email protected] ~]$ ps -e

4) Ausgabe im BSD-Format anzeigen

Um die Prozesse im BSD-Format aufzulisten, führen Sie den Befehl

aus
$ ps -aux

Lassen Sie uns den Befehl aufschlüsseln:

Das Flag -a weist ps an, alle Prozesse von allen Benutzern anzuzeigen. Dies schließt jedoch die Prozesse aus, die einem bestimmten Terminal zugeordnet sind.

Das Flag -u impliziert ein benutzerorientiertes Format. Es bietet detailliertere Informationen zu den laufenden Prozessen.

Das x-Flag listet Prozesse auf, die normalerweise beim Systemstart gestartet werden, sowie Hintergrundprozesse.

Wo:

  • USER – Dies gibt den Benutzer an, der den Prozess ausführt
  • PID – Dies ist die Prozess-ID des Prozesses
  • %CPU – Dies ist die prozentuale CPU-Auslastung jedes Prozesses
  • %MEM – Dies ist der Prozentsatz des vom Prozess belegten physischen Speichers
  • VSZ – Dies ist die Größe des virtuellen Speichers jedes Prozesses in Kilobyte
  • RSS – Dies ist die Größe/Menge des physischen Speichers, der von einem Prozess verwendet wird
  • STAT – Dies zeigt auf den Prozesszustandscode, z. B. S (Schlafen), Z (Zombie) und R (Running)
  • START – Dies ist die Zeit, zu der der Prozess gestartet wurde

5) Ausgabe im UNIX-Format anzeigen

Wenn Sie die Ausgabe im UNIX-Format anzeigen möchten, führen Sie den Befehl ps mit einer Kombination aus -ef aus Flaggen

[[email protected] ~]$ ps -ef

Das Flag -e weist den Befehl ps an, alle Prozesse aufzulisten

Das Flag -f (vollständiges Format) weist den Befehl ps an, detaillierte Informationen über die Prozesse aufzulisten.

Lassen Sie uns ein paar neue Begriffe aus dem Screenshot definieren:

  • PPID:Dies bezieht sich auf die übergeordnete Prozess-ID
  • C:Dies bezieht sich auf die %CPU oder den Prozentsatz der CPU-Auslastung eines Prozesses.
  • STIME:Zeigt die Uhrzeit an, zu der der Befehl gestartet wurde. Dasselbe wie START

6) Ausgabe in einem benutzerdefinierten Format anzeigen

In einem benutzerdefinierten Ausgabeformat können Sie entscheiden, welche Spalten angezeigt werden sollen. Das -o-Flag legt fest, welche Spalten angezeigt werden, wenn der Befehl ps ausgeführt wird. Im Beispiel unten nur die PID und STARTEN Spalten angezeigt. Achten Sie darauf, dass die Spaltenoptionen im Befehl ps in Kleinbuchstaben übergeben werden.

[[email protected] ~]$ ps -efo pid,start  PID  STARTED 1437 21:55:2813632 01:41:16[[email protected] ~]$

7) Zeigt die aktuell laufenden Prozesse eines Benutzers

Manchmal möchten Sie vielleicht Prozesse herausfinden, die einem bestimmten Benutzer zugeordnet sind, also verwenden Sie dazu das -u Flag wie gezeigt“

$ ps -u Benutzer

ODER

$ ps -u uid

Um beispielsweise Prozesse anzuzeigen, die dem Benutzer „Linuxtechi“ zugeordnet sind, führen Sie den folgenden Befehl aus:

$ ps -u linuxtechi

Alternativ können Sie die uid (Benutzer-ID) des Benutzers verwenden. Sie können die Benutzer-ID abrufen, indem Sie den folgenden Befehl ausführen:

$ id Benutzer

[[email protected] ~]$ id linuxtechiuid=1000(linuxtechi) gid=1000(linuxtechi) groups=1000(linuxtechi),10(wheel)[[email protected] ~]$

Aus der obigen Ausgabe können wir deutlich erkennen, dass die uid für den Benutzer „linuxtechi“ 1000 ist. Sie können dann den Befehl ps und die uid verwenden, um die mit dem Benutzer verknüpften Prozesse zu finden.

$ ps -u 1000

Führen Sie für den Root-Benutzer den Befehl

aus
$ ps -u root

In ähnlicher Weise können Sie dies anhand der uid des Root-Benutzers überprüfen, dessen Wert 0 ist

$ ps -u 0

8) Anzeigen von Gruppenprozessen

Das Auflisten von Gruppenprozessen ähnelt dem Auflisten von Benutzerprozessen. Sie können einen Gruppenprozess mit dem Befehl ps auflisten, indem Sie den Namen der Gruppe durch Angabe der Gruppen-ID übergeben.

Um beispielsweise die Prozesse anzuzeigen, die der Gruppe „Apache“ zugeordnet sind, führen Sie den folgenden Befehl aus:

$ ps -fG

$ ps -fG apache

Alternativ können Sie statt des Gruppennamens auch die Gruppen-ID (gid) übergeben. Sie können die GIDs aus der Datei /etc/group erhalten.

In diesem Fall lautet die Gruppen-ID für Apache beispielsweise 48. Anstatt also den Gruppennamen „apache“ anzugeben ’ einfach die GID-Nr. 48.

$ ps -fG 48

9) Anzeige von Prozessen mit PID und PPID

Linux-Prozesse können auch über die PID angezeigt werden (Prozess-ID ) und die PPID (Elternprozess-ID) . Die PPID bezieht sich auf die PID des übergeordneten Prozesses.

Um Prozesse nach PID aufzulisten, führen Sie

aus
$ ps -fp PID

Um beispielsweise die mit PID 1286 verknüpften Prozesse aufzulisten, führen Sie den folgenden Befehl aus:

[[email protected] ~]$ ps -fp 1286UID        PID  PPID  C STIME TTY          TIME CMDpostfix   1286  1285  0 03:49 ? 00:00:00 Pickup -l -t unix -u[[email protected] ~]$

Um Prozesse nach PPID aufzulisten, führen Sie

aus

$ ps -f –ppid

Zum Beispiel, um Prozesse aufzulisten, die PPID 31903 gehören, laufen

$ ps -f --ppid 31903

10) Suche nach einer PID anhand des Prozessnamens

Meistens kennen wir die PID des Prozessnamens nicht. Verwenden Sie dazu das Flag -C wie abgebildet

$ ps -C

[[email protected] ~]$ ps -C firefox  PID TTY          TIME CMD 1446 tty2     00:00:04 firefox[[email protected] ~]$

11) Anzeigeprozess mit TTY

Wenn Sie Prozesse nach dem tty-Wert filtern möchten, verwenden Sie das -t-Flag . Um beispielsweise die an tty1 angehängten Prozesse anzuzeigen, führen Sie den Befehl ps wie gezeigt aus:

$ ps -ft tty1

12) Drucken des Prozessbaums

Ein Prozessbaum zeigt, wie Prozesse in einem Linux-System verknüpft sind. Prozesse ohne Eltern verbinden sich über init oder systemd mit dem System. Beim Drucken müssen Sie das folgende Format verwenden:

$ ps -e --forest

13) Filtern Sie einen Prozess nach dem Thread-Prozess

Um einen Prozess mithilfe des Prozess-Threads zu filtern, verwenden Sie das -L-Flag wie gezeigt,

$ ps -L 1446

14) Prozessüberwachung in Echtzeit

Sie können das Dienstprogramm watch verwenden, um statische Informationen zu einem Prozess zu überwachen. Die Ausgabe wird wie unten gezeigt jede Sekunde abgespielt

$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | Kopf'

Der Befehl gibt die Spalten pid, ppid, cmd, %mem und %cpu aus und überwacht die Statistiken jede einzelne Sekunde, während er die %CPU-Auslastung sortiert in absteigender Reihenfolge.

15) Fehlerbehebung bei Leistungsproblemen des Linux-Rechners

Wenn Ihr System langsam oder überlastet ist, können Sie den am häufigsten ausgeführten Prozess anhand der höchsten CPU- und Speicherauslastung identifizieren

Führen Sie den folgenden ps-Befehl aus, um die wichtigsten Prozesse aufzulisten, die viel Speicher verbrauchen,

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | Kopf

Führen Sie den folgenden ps-Befehl aus, um die wichtigsten Prozesse aufzulisten, die viel CPU verbrauchen,

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | Kopf

Beispielausgabe des obigen ps-Befehls auf meinem System ist unten,

16) Beenden von nicht reagierenden Prozessen

Mit dem Befehl ps können Sie nicht reagierende Anwendungen oder alle Prozesse beenden, die CPU und RAM in Beschlag nehmen. Dazu müssen Sie die PID dieser bestimmten Anwendung mit dem folgenden Befehl ermitteln:

$ ps -A | grep -i stress

Sobald Sie die PID des Prozesses gefunden haben, können Sie ihn mit dem Kill-Befehl beenden, das Beispiel ist unten gezeigt,

$ kill -9 2583 2584

17) Alle PIDs aller Prozessinstanzen auflisten

Sie können alle einem Prozess zugeordneten PIDs auflisten, indem Sie die folgende Syntax verwenden:

$ ps -C -o pid=

Um beispielsweise die mit dem httpd-Webserver verknüpften PIDs herauszufinden, führen Sie Folgendes aus:

$ ps -C httpd -o pid=

18) Zeigen Sie die Dauer an, die Prozesse ausgeführt wurden

Führen Sie den folgenden Befehl aus, um anzuzeigen, wie lange Prozesse ausgeführt wurden:

$ ps -eo comm,etime,user

Verwenden Sie den folgenden ps-Befehl, um zu erfahren, wie lange ein bestimmter Prozess ausgeführt wurde,

$ ps -o etime -p

Nehmen wir an, wir möchten etwas über den MySQL-Prozess erfahren

[[email protected] ~]$  ps -C mysqld -o pid= 3807[[email protected] ~]$[[email protected] ~]$ ps -o etime -p 3807    ELAPSED   01:13:56[ [email protected] ~]$

19) Untergeordnete Prozesse eines Prozesses auflisten

Um die untergeordneten Prozesse eines Prozesses zu drucken oder aufzulisten, verwenden Sie -C-Flag in der folgenden Syntax:

$ ps -C

Um beispielsweise untergeordnete Prozesse aufzulisten, die dem httpd-Prozess zugeordnet sind, führen Sie

aus
[[email protected] ~]$ ps -C httpd  PID TTY          TIME CMD31911 ? 00:00:00 httpd31918 ? 00:00:00 httpd31919 ? 00:00:00 httpd31920 ? 00:00:01 httpd31921 ? 00:00:01 httpd31922 ? 00:00:01 httpd[[email protected] ~]$

20) Filtern der Ausgabe des ps-Befehls mit  grep

Um bestimmte Ergebnisse im Befehl ps zu erhalten, können Sie die Ausgabe an das Hilfsprogramm grep weiterleiten und die Suchkriterien angeben.

Um beispielsweise nach PHP-Prozessen zu suchen oder diese einzugrenzen, führen Sie den folgenden Befehl aus:

$ ps -ef | grep php

Wir haben die 20 wichtigsten ps - Befehle aufgelistet , die häufig zum Auflisten und Überwachen der Prozesse verwendet werden , die auf Ihrem Linux - System ausgeführt werden . Diese Befehle funktionieren in allen Linux-Distributionen und geben Ihnen sicherlich einen Überblick über die auf Ihrem System laufenden Prozesse und helfen Ihnen festzustellen, welche Ihre CPU- und RAM-Ressourcen überlasten. Fanden Sie diesen Leitfaden aufschlussreich? Fühlen Sie sich frei, es zu mögen und auf Ihren Social-Media-Plattformen zu teilen. Ihr Feedback ist uns sehr willkommen.

Lesen Sie auch :25 Top-Befehlsbeispiele zur Überwachung der Linux-Serverleistung


Linux
  1. sa-Befehlsbeispiele in Linux

  2. w Befehlsbeispiele unter Linux

  3. ac-Befehlsbeispiele in Linux

  4. df-Befehlsbeispiele in Linux

  5. du-Befehlsbeispiele in Linux

Linux-PS-Befehl mit Beispielen

15 einfache Beispiele für TOP-Befehle unter Linux zur Überwachung von Prozessen

10 Beispiele für Linux ss-Befehle zur Überwachung von Netzwerkverbindungen

Linux-PS-Befehl – ​​20 Beispiele aus dem wirklichen Leben

id-Befehlsbeispiele in Linux

fuser Linux-Befehl mit Beispielen