30 Nützliche Beispiele für „ps-Befehle“ für die Linux-Prozessüberwachung
ps (Prozessstatus) ist ein natives Unix / Linux-Dienstprogramm zum Anzeigen von Informationen zu einer Auswahl von laufenden Prozessen auf einem System: Es liest diese Informationen aus den virtuellen Dateien im / proc-Dateisystem. Es ist eines der wichtigsten Dienstprogramme für die Systemadministration, das speziell für die Prozessüberwachung vorgesehen ist, damit Sie besser verstehen, was auf einem Linux-System vor sich geht.
Es bietet zahlreiche Optionen zum Bearbeiten der Ausgabe, Sie werden jedoch eine kleine finden Anzahl davon praktisch nützlich für den täglichen Gebrauch.
Lesen Sie auch: Alles, was Sie über Prozesse unter Linux wissen müssen
In diesem Artikel werden 30 nützliche Beispiele für ps-Befehle vorgestellt
Beachten Sie, dass ps eine Ausgabe mit einer Überschriftenzeile erzeugt, die die Bedeutung jeder Informationsspalte darstellt. Die Bedeutung aller Bezeichnungen finden Sie im ps-Mann Seite.
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
Alle Prozesse in verschiedenen Formaten drucken
2. Zeigen Sie jeden aktiven Prozess auf einem Linux-System im generischen Format (Unix / Linux) an.
$ ps -AOR$ ps -e
3. Zeigen Sie alle Prozesse im BSD-Format an.
$ ps auOR$ ps axu
4. Fügen Sie das Flag -f
oder -F
hinzu.
$ ps -efOR$ ps -eF
Benutzer laufende Prozesse anzeigen
5. Sie können alle Prozesse auswählen, deren Eigentümer Sie sind (Läufer des Befehls ps, in diesem Fall root). Geben Sie Folgendes ein:
$ ps -x
6. Verwenden Sie das Flag -U
, um die Prozesse eines Benutzers nach realer Benutzer-ID (RUID) oder Namen anzuzeigen.
$ ps -fU tecmintOR$ ps -fu 1000
7. Verwenden Sie die Option -u
, um die Prozesse eines Benutzers anhand der effektiven Benutzer-ID (EUID) oder des Namens auszuwählen.
$ ps -fu tecmintOR$ ps -fu 1000
Alle als Root ausgeführten Prozesse drucken (Real- und Effecitve-ID)
8. Mit dem folgenden Befehl können Sie jeden Prozess anzeigen, der mit Root-Benutzerrechten (echte & effektive ID) im Benutzerformat ausgeführt wird.
$ 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 apacheOR$ ps -fG 48
10. Geben Sie Folgendes ein, um alle Prozesse aufzulisten, deren Eigentümer der effektive Gruppenname (oder die Sitzung) ist.
$ ps -fg apache
Anzeigen von Prozessen nach PID und PPID
11. Sie können Prozesse nach PID wie folgt auflisten.
$ ps -fp 1178
12. Geben Sie zur Auswahl des Prozesses nach PPID Folgendes ein:
$ ps -f --ppid 1154
13. Treffen Sie Ihre Auswahl mithilfe der PID-Liste.
$ ps -fp 2226,1154,1146
Prozesse nach TTY anzeigen
14. Verwenden Sie das Flag -t wie folgt, um Prozesse nach tty auszuwählen.
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
Druckprozessbaum
15. Ein Prozessbaum zeigt, wie Prozesse im System miteinander verknüpft sind. Prozesse, deren Eltern getötet wurden, werden vom 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 sshdOR$ ps -ef --forest | grep -v grep | grep sshd
Druckprozess-Threads
17. Verwenden Sie zum Drucken aller Threads eines Prozesses das Flag -H
. Daraufhin werden die Spalten LWP (Lightweight-Prozess) sowie NLWP (Anzahl der Lightweight-Prozesse) angezeigt. P. >
$ ps -fL -C httpd
Benutzerdefiniertes Ausgabeformat angeben
Mit den Optionen -o oder –format können Sie mit ps benutzerdefinierte Ausgabeformate wie unten gezeigt erstellen.
18. Um alle Formatspezifizierer aufzulisten, geben Sie das Flag L
an.
$ 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 Wert, die Startzeit und die verstrichene Zeit eines Prozesses anzeigt.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. So finden Sie einen Prozessnamen anhand seiner PID:
$ 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 untergeordneten Prozesse angezeigt.
$ ps -C sshd
23. Suchen Sie alle PIDs aller Instanzen eines Prozesses, die beim Schreiben von Skripten hilfreich sind, 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 1 Stunde, 48 Minuten und 17 Sekunden lang ausgeführt wurde.
Fehlerbehebung Linux-Systemleistung
Wenn Ihr System nicht ordnungsgemäß funktioniert, 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 höchster Speicher- und CPU-Auslastung unter Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. So beenden Sie Linux-Prozesse / nicht reagierende Anwendungen oder Prozesse, die viel CPU-Zeit benötigen.
Ermitteln Sie zunächst die PID des nicht reagierenden Prozesses oder der nicht reagierenden Anwendung.
$ ps -A | grep -i stress
Verwenden Sie dann den Befehl kill, um ihn sofort zu beenden.
$ kill -9 2583 2584
Sicherheitsinformationen drucken
28. Zeigen Sie den Sicherheitskontext (speziell für SELinux) wie folgt an.
$ ps -eMOR$ ps --context
29. Mit diesem Befehl können Sie auch Sicherheitsinformationen in einem benutzerdefinierten Format anzeigen.
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Führen Sie eine Echtzeit-Prozessüberwachung mit dem Überwachungsdienstprogramm
30 durch. 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 wie im folgenden Befehl angezeigt wird (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 tatsächlich ein Tool zur Überwachung der Linux-Systemleistung.
Vielleicht möchten Sie auch die folgenden verwandten Artikel lesen.
- So finden Sie einen Prozessnamen mithilfe der PID-Nummer unter Linux
- Finden Sie die am häufigsten ausgeführten Prozesse nach höchster Speicher- und CPU-Auslastung unter Linux
- Ein Leitfaden für Kill-, Pkill- und Killall-Befehle zum Beenden eines Prozesses unter Linux
- So finden und beenden Sie laufende Prozesse unter Linux
- Starten des Linux-Befehls im Hintergrund und Trennen des Prozesses im Terminal