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 zu einer Auswahl laufender Prozesse auf einem System: Es liest diese Informationen aus den virtuellen Dateien im/proc-Dateisystem. Es ist eines der wichtigen Dienstprogramme für die Systemverwaltung, insbesondere im Bereich 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 der Ausgabe, einige davon sind jedoch für den täglichen Gebrauch praktisch nützlich.

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. Die Bedeutung aller Beschriftungen finden Sie auf der ps-Manpage.

Alle Prozesse in der aktuellen Shell auflisten

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

ps 

Drucken Sie alle Prozesse in verschiedenen Formaten

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

ps -A
OR
ps -e

3. Alle Prozesse im BSD-Format anzeigen.

ps au
OR
ps axu

4. Um eine Auflistung im Vollformat 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, deren Eigentümer Sie sind (Ausführer des ps-Befehls, in diesem Fall Root), und Folgendes eingeben:

ps -x 

6. Um die Prozesse eines Benutzers nach echter Benutzer-ID (RUID) oder Namen 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

Alle Prozesse drucken, 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 gehören (echte Gruppen-ID (RGID) oder Name), geben Sie Folgendes ein:

ps -fG apache
OR
ps -fG 48

10. Um alle Prozesse aufzulisten, deren Eigentümer der effektive Gruppenname (oder die Sitzung) ist, geben Sie Folgendes 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 den Prozess nach PPID auszuwählen, geben Sie ein.

ps -f --ppid 1154

13. Treffen Sie eine Auswahl mithilfe 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 im System miteinander verknüpft sind; Prozesse, deren Eltern getötet wurden, werden von init (oder systemd) übernommen.

ps -e --forest 

16. Sie können auch einen Prozessbaum für einen bestimmten Prozess wie diesen drucken.

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

Prozessthreads drucken

17. Um alle Threads eines Prozesses zu drucken, verwenden Sie das Flag -L. Dadurch wird der LWP (Lightweight-Prozess) angezeigt.) sowie NLWP (Anzahl der Lightweight-Prozesse).

ps -fL -C httpd

Geben Sie ein benutzerdefiniertes Ausgabeformat an

Mithilfe der Optionen -o oder –format können Sie mit ps benutzerdefinierte Ausgabeformate erstellen, wie unten gezeigt.

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

ps L

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

ps -eo pid,ppid,user,cmd

20. Unten finden 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. Dadurch werden auch alle seine untergeordneten Prozesse angezeigt.

ps -C sshd

23. Finden Sie alle PIDs aller Instanzen eines Prozesses. Dies ist nützlich, wenn Sie Skripte schreiben, die PIDs aus einer Standardausgabe 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 seit 1 Stunde, 48 Minuten und 17 Sekunden ausgeführt wird.

Beheben Sie Probleme mit der Linux-Systemleistung

Wenn Ihr System nicht ordnungsgemäß funktioniert, beispielsweise wenn es ungewöhnlich langsam ist, können Sie wie folgt eine Systemfehlerbehebung 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. Zum Beenden von Linux-Prozessen/nicht reagierenden Anwendungen oder anderen Prozessen, die viel CPU-Zeit verbrauchen.

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

ps -A | grep -i stress

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

kill -9 2583 2584

Sicherheitsinformationen drucken

28. Sicherheitskontext (speziell für SELinux) wie folgt anzeigen.

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 Prozessüberwachung in Echtzeit mit dem Watch Utility durch

30. Da ps schließlich statische Informationen anzeigt, können Sie das Watch-Dienstprogramm verwenden, um eine Prozessüberwachung in Echtzeit mit sich wiederholender Ausgabe durchzuführen, die jede 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; Oben und auf den ersten Blick: Bei den letzten beiden handelt es sich tatsächlich um 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 unter Linux
  2. Finden Sie die am häufigsten ausgeführten Prozesse nach höchster Speicher- und CPU-Auslastung unter 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 ist alles für den Moment. Wenn Sie nützliche Beispiele für ps-Befehle zum Teilen haben (und nicht vergessen, zu erklären, was er bewirkt), verwenden Sie das Kommentarformular unten.