Website-Suche

30 nützliche 'ps Command'-Beispiele für die Linux-Prozessüberwachung


ps (Processes Status) ist ein natives Unix/Linux-Dienstprogramm zum Anzeigen von Informationen über eine Auswahl laufender Prozesse auf einem System: Es liest diese Informationen aus den virtuellen Dateien im Dateisystem /proc. Es ist eines der wichtigsten Dienstprogramme für die Systemadministration, insbesondere bei der Prozessüberwachung, um Ihnen zu helfen, zu verstehen, was in einem Linux-System vor sich geht.

Es verfügt über zahlreiche Optionen zur Manipulation seiner Ausgabe, aber Sie werden feststellen, dass eine kleine Anzahl von ihnen für den täglichen Gebrauch praktisch nützlich ist.

Lesen Sie auch: Alles, was Sie über Prozesse in Linux wissen müssen [Umfassender Leitfaden]

In diesem Artikel sehen wir uns 30 nützliche Beispiele für ps-Befehle zur Überwachung aktiv laufender Prozesse auf einem Linux-System an.

Beachten Sie, dass ps eine Ausgabe mit einer Überschriftenzeile erzeugt, die die Bedeutung jeder Informationsspalte darstellt, Sie können die Bedeutung aller Beschriftungen auf der ps-Manpage finden.

Alle Prozesse in der aktuellen Shell auflisten

1. Wenn Sie den Befehl ps ohne Argumente ausführen, werden Prozesse für die aktuelle Shell angezeigt.

$ ps 

Drucken Sie alle Prozesse in verschiedenen Formaten

2. Zeigen Sie jeden aktiven Prozess auf einem Linux-System im generischen Format (Unix/Linux) an.

$ ps -A
OR
ps -e

3. Zeigen Sie alle Prozesse im BSD-Format an.

$ ps au
OR
ps axu

4. Um eine vollständige Formatierung der Liste durchzuführen, fügen Sie das Flag -f oder -F hinzu.

$ ps -ef
OR
ps -eF

Vom Benutzer ausgeführte Prozesse anzeigen

5. Sie können alle Prozesse auswählen, die Ihnen gehören (Runner des ps-Befehls, in diesem Fall root), und geben Sie Folgendes ein:

$ ps -x 

6. Um die Prozesse eines Benutzers nach echter Benutzer-ID (RUID) oder Name anzuzeigen, verwenden Sie das Flag -U.

$ ps -fU tecmint
OR
ps -fu 1000

7. Um die Prozesse eines Benutzers anhand der effektiven Benutzer-ID (EUID) oder des Namens auszuwählen, verwenden Sie die Option -u.

$ ps -fu tecmint
OR
ps -fu 1000

Drucken aller Prozesse, die als Root ausgeführt werden (echte und effektive ID)

8. Mit dem folgenden Befehl können Sie jeden Prozess, der mit Root-Benutzerrechten (echte und effektive ID) ausgeführt wird, im Benutzerformat anzeigen.

$ ps -U root -u root 

Gruppenprozesse anzeigen

9. Wenn Sie alle Prozesse auflisten möchten, die einer bestimmten Gruppe (Real Group ID (RGID) oder Name) gehören), geben Sie ein.

$ ps -fG apache
OR
ps -fG 48

10. Um alle Prozesse aufzulisten, die sich im Besitz des gültigen Gruppennamens (oder der Sitzung) befinden, geben Sie ein.

$ ps -fg apache

Prozesse nach PID und PPID anzeigen

11. Sie können Prozesse wie folgt nach PID auflisten.

$ ps -fp 1178

12. Um Prozess nach PPID auszuwählen, geben Sie ein.

$ ps -f --ppid 1154

13. Treffen Sie eine Auswahl anhand einer PID-Liste.

$ ps -fp 2226,1154,1146

Prozesse nach TTY anzeigen

14. Um Prozesse nach tty auszuwählen, verwenden Sie das Flag -t wie folgt.


ps -t pts/0
ps -t pts/1
ps -ft tty1

Prozessbaum drucken

15. Ein Prozessbaum zeigt, wie Prozesse auf dem System miteinander verknüpft sind; Prozesse, deren Eltern beendet wurden, werden vom init (oder systemd) übernommen.

$ ps -e --forest 

16. Sie können auch einen Prozessbaum für einen bestimmten Prozess auf diese Weise drucken.

$ ps -f --forest -C sshd
OR
ps -ef --forest | grep -v grep | grep sshd 

Prozess-Threads drucken

17. Um alle Threads eines Prozesses zu drucken, verwenden Sie das Flag -L, dies zeigt sowohl die Spalten LWP (Lightweight Process) als auch NLWP (Anzahl der Lightweight Prozesse) an.

$ ps -fL -C httpd

Angeben eines benutzerdefinierten Ausgabeformats

Mit den Formatoptionen -o oder –format können Sie mit ps benutzerdefinierte Ausgabeformate erstellen, wie unten gezeigt.

18. Um alle Formatbezeichner aufzulisten, fügen Sie das L-Flag ein.

$ ps L

19. Mit dem folgenden Befehl können Sie die PID, die PPID, den Benutzernamen und den Befehl eines Prozesses anzeigen.

$ ps -eo pid,ppid,user,cmd

20. Unten sehen Sie ein weiteres Beispiel für ein benutzerdefiniertes Ausgabeformat, das die Dateisystemgruppe, den Nice-Wert, die Startzeit und die verstrichene Zeit eines Prozesses anzeigt.

$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime

21. Um einen Prozessnamen anhand seiner PID zu finden.

$ ps -p 1154 -o comm=

Übergeordnete und untergeordnete Prozesse anzeigen

22. Um einen bestimmten Prozess anhand seines Namens auszuwählen, verwenden Sie das Flag -C, dies zeigt auch alle seine untergeordneten Prozesse an.

$ ps -C sshd

23. Findet alle PIDs aller Instanzen eines Prozesses, nützlich beim Schreiben von Skripten, die PIDs aus einer std-Ausgabe oder -Datei lesen müssen.

$ ps -C httpd -o pid=

24. Überprüfen Sie die Ausführungszeit eines Prozesses.

$ ps -eo comm,etime,user | grep httpd

Die folgende Ausgabe zeigt, dass der HTTPD-Dienst 1 Stunde, 48 Minuten und 17 Sekunden lang ausgeführt wurde.

Fehlerbehebung bei der Linux-Systemleistung

Wenn Ihr System nicht so funktioniert, wie es sein sollte, z. B. wenn es ungewöhnlich langsam ist, können Sie eine Systemfehlerbehebung wie folgt durchführen.

26. Finden Sie die am häufigsten ausgeführten Prozesse nach der höchsten Speicher- und CPU-Auslastung unter Linux.

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

27. Um Linux-Prozesse/nicht reagierende Anwendungen oder andere Prozesse, die viel CPU-Zeit verbrauchen, zu beenden.

Suchen Sie zunächst die PID des nicht reagierenden Prozesses oder der Anwendung.

$ ps -A | grep -i stress

Verwenden Sie dann den Befehl kill, um es sofort zu beenden.

$ kill -9 2583 2584

Drucken von Sicherheitsinformationen

28. Zeigen Sie den Sicherheitskontext (speziell für SELinux) wie folgt an.

$ ps -eM
OR
ps --context

29. Mit diesem Befehl können Sie Sicherheitsinformationen auch in einem benutzerdefinierten Format anzeigen.

$ ps -eo  euser,ruser,suser,fuser,f,comm,label

Führen Sie eine Echtzeit-Prozessüberwachung mit dem Überwachungsdienstprogramm durch

30. Da ps statische Informationen anzeigt, können Sie das Dienstprogramm watch verwenden, um eine Echtzeit-Prozessüberwachung mit sich wiederholender Ausgabe durchzuführen, die nach jeder Sekunde angezeigt wird, wie im folgenden Befehl (geben Sie einen benutzerdefinierten ps-Befehl an, um Ihr Ziel zu erreichen).

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

Wichtig: ps zeigt nur statische Informationen an, um häufig aktualisierte Ausgaben anzuzeigen, können Sie Tools wie htop verwenden; top, und Blicke: Die letzten beiden sind in der Tat Tools zur Überwachung der Linux-Systemleistung.

Vielleicht möchten Sie auch die folgenden verwandten Artikel lesen.

  1. So finden Sie einen Prozessnamen mithilfe der PID-Nummer in Linux
  2. Finden Sie die am häufigsten ausgeführten Prozesse nach höchster Speicher- und CPU-Auslastung in Linux
  3. Eine Anleitung zu kill-, pkill- und killall-Befehlen zum Beenden eines Prozesses unter Linux
  4. So finden und beenden Sie laufende Prozesse unter Linux
  5. So starten Sie den Linux-Befehl im Hintergrund und trennen den Prozess im Terminal

Das war's fürs Erste. Wenn Sie nützliche Beispiele für ps-Befehle haben, die Sie teilen möchten (und vergessen Sie nicht, zu erklären, was es tut), verwenden Sie das Kommentarformular unten.

Verwandte Artikel: