30 nützliche ‚ps-Befehls‘ Beispiele für die Linux-Prozessüberwachung

() 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 /proc-Dateisystem. Es ist eines der wichtigen Dienstprogramme für die Systemverwaltung speziell in der Prozessüberwachung, um Ihnen zu helfen zu verstehen, was in einem Linux-System vor sich geht.

Es hat zahlreiche Optionen zur Manipulation seiner Ausgabe, jedoch werden Sie feststellen, dass nur eine kleine Anzahl von ihnen für die tägliche Verwendung praktisch sind.

Weiterlesen: Alles, was Sie über Prozesse in Linux wissen müssen [umfassender Leitfaden]

In diesem Artikel werden wir uns 30 nützliche Beispiele für ps-Befehle ansehen, um aktive laufende Prozesse auf einem Linux-System zu überwachen.

Beachten Sie, dass eine Ausgabe mit einer Überschriftenzeile erzeugt, die die Bedeutung jeder Spalte mit Informationen darstellt; die Bedeutung aller Labels finden Sie auf der ps-Man-Seite.

Alle Prozesse in der aktuellen Shell auflisten

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

$ ps 
List Current Running Processes

Alle Prozesse in verschiedenen Formaten ausdrucken

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

$ ps -A
OR
$ ps -e
List Processes in Standard Format

3. Zeigen Sie alle Prozesse im -Format an.

$ ps au
OR
$ ps axu
List Processes in BSD Format

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

$ ps -ef
OR
$ ps -eF
List Processes in Long List Format

Benutzer ausgeführten Prozesse anzeigen

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

$ ps -x 

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

$ ps -fU tecmint
OR
$ ps -fu 1000
List User Processes by ID

7. Um die Prozesse eines Benutzers nach effektiver Benutzer-ID (EUID) oder Namen auszuwählen, verwenden Sie die -u Option.

$ ps -fu tecmint
OR
$ ps -fu 1000

Alle Prozesse anzeigen, die als root ausgeführt werden (echte und effektive ID)

8. Der folgende Befehl ermöglicht es Ihnen, jeden Prozess, der mit Benutzerrechten von root ausgeführt wird, im Benutzerformat anzuzeigen.

$ ps -U root -u root 
Display Root User Running Processes

Gruppenprozesse anzeigen

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

$ ps -fG apache
OR
$ ps -fG 48
Display Group Processes

10. Um alle Prozesse aufzulisten, die von einem effektiven Gruppennamen (oder einer Sitzung) gehören, geben Sie ein.

$ ps -fg apache

Prozesse nach PID und PPID anzeigen

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

$ ps -fp 1178
List Processes by PID

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

$ ps -f --ppid 1154
List Process by PPID

13. Eine Auswahl mit einer PID-Liste treffen.

$ ps -fp 2226,1154,1146
List Processes by PIDs

Prozesse nach TTY anzeigen

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

$ ps -t pts/0
$ ps -t pts/1
$ ps -ft tty1
List Processes by TTY

Drucken Sie den Prozessbaum

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

$ ps -e --forest 
List Process Tree

16. Sie können auch einen Prozessbaum für einen bestimmten Prozess wie folgt ausdrucken.

$ ps -f --forest -C sshd
OR
$ ps -ef --forest | grep -v grep | grep sshd 
List Tree View of Process

Drucken Sie Prozess-Threads

17. Um alle Threads eines Prozesses auszudrucken, verwenden Sie das -L Flag, dies zeigt die LWP (leichtgewichtiger Prozess) sowie die NLWP (Anzahl der leichtgewichtigen Prozesse) Spalten an.

$ ps -fL -C httpd
List Process Threads

Benutzerdefiniertes Ausgabeformat festlegen

Mit den Optionen -o oder –format ermöglicht ps Ihnen, benutzerdefinierte Ausgabeformate wie unten gezeigt zu erstellen.

18. Um alle Formatierer aufzulisten, fügen Sie das L Flag hinzu.

$ ps L

19. Der folgende Befehl ermöglicht es Ihnen, die PID, PPID, den Benutzernamen und den Befehl eines Prozesses anzuzeigen.

$ ps -eo pid,ppid,user,cmd
List Processes with Names

20. Im Folgenden finden Sie ein weiteres Beispiel für ein benutzerdefiniertes Ausgabeformat, das Dateisystemgruppe, Prioritätswert, Startzeit und vergangene Zeit eines Prozesses anzeigt.

$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
List Process ID Information

21. Um einen Prozessnamen anhand seiner PID zu finden.Prozessname mithilfe seiner PID finden.

$ ps -p 1154 -o comm=
Find Process using PID

Übergeordnete und untergeordnete Prozesse anzeigen

22. Um einen bestimmten Prozess nach seinem Namen auszuwählen, verwenden Sie das -C Flag, dies wird auch alle untergeordneten Prozesse anzeigen.

$ ps -C sshd
Find Parent-Child Process

23. Finden Sie alle PIDs aller Instanzen eines Prozesses, nützlich beim Schreiben von Skripten, die PIDs aus einer Standardausgabe oder Datei lesen müssen.

$ ps -C httpd -o pid=
Find All Process PIDs

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

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

Die Ausgabe unten zeigt, dass der HTTPD-Dienst seit 1 Stunde, 48 Minuten und 17 Sekunden läuft.

Find Process Uptime

Linux-Systemleistung beheben

Wenn Ihr System nicht wie erwartet funktioniert, zum Beispiel, wenn es ungewöhnlich langsam ist, können Sie wie folgt einige Systemfehlerbehebungen durchführen.

26. Finden Sie die am meisten ausgeführten Prozesse nach höchstem Speicher- und CPU-Verbrauch in Linux.

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

27. Um Linux-Prozesse/nicht reagierende Anwendungen oder jeden Prozess, der viel CPU-Zeit verbraucht, zu beenden.

Zuerst finden Sie die PID des nicht reagierenden Prozesses oder der Anwendung.

$ ps -A | grep -i stress

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

$ kill -9 2583 2584
Find and Kill a Process

Sicherheitsinformationen drucken

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

$ ps -eM
OR
$ ps --context
Find SELinux Context

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

$ ps -eo  euser,ruser,suser,fuser,f,comm,label
List SELinux Context by Users

Führen Sie die Echtzeit-Prozessüberwachung mit dem Watch-Dienstprogramm durch

30. Schließlich können Sie, da ps statische Informationen anzeigt, das Watch-Dienstprogramm verwenden, um eine Echtzeit-Prozessüberwachung mit wiederholter 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'
Real-Time Process Monitoring

Wichtig: ps zeigt nur statische Informationen an. Um häufig aktualisierte Ausgaben anzuzeigen, können Sie Tools wie htop, top und glances verwenden: Die letzten beiden sind tatsächlich Linux-Systemleistungsüberwachungstools.

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

  1. So finden Sie einen Prozessnamen anhand der PID-Nummer in Linux
  2. Finden Sie die Top-Ausführungsprozesse nach höchstem Speicher- und CPU-Verbrauch in Linux
  3. A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
  4. Wie man laufende Prozesse in Linux findet und beendet
  5. Wie man ein Linux-Kommando im Hintergrund startet und den Prozess im Terminal abkoppelt

Das war’s für jetzt. Wenn Sie irgendwelche nützlichen ps-Befehl Beispiele zum Teilen haben (vergessen Sie nicht zu erklären, was es macht), verwenden Sie das Kommentarformular unten.

Source:
https://www.tecmint.com/ps-command-examples-for-linux-process-monitoring/