Der Befehl ps ist ein praktisches Dienstprogramm, mit dem wir wichtige Prozessinformationen anzeigen können. Ein Prozess ist einfach eine laufende Instanz eines Programms. Immer wenn wir ein Programm aufrufen, werden einige Prozesse erstellt. Ein gründliches Verständnis des Prozessbaums ist zwingend erforderlich, wenn Sie die volle Kontrolle über Ihre Maschine haben möchten. Hier kommt ps ins Spiel. Es ist einer der nützlichsten Terminalbefehle in Linux und bietet dennoch jede Menge wichtiger Informationen. SysAdmins können sie verwenden, um fehlerhafte Programme zu finden oder die Ressourcennutzung zu lokalisieren. Dieses Handbuch bietet Lesern eine praktische Einführung in den Befehl ps unter Linux.
Praktische Linux-PS-Befehle für den täglichen Gebrauch
Der Befehl ps ist eine einfache Möglichkeit, alle aktiven Prozesse anzuzeigen. Der Befehl ps gibt jedoch nur eine Momentaufnahme der Auswahl von Prozessen aus. Wenn Sie Ihre Auswahl in Echtzeit aktualisieren möchten, sollten Sie den Linux-Befehl top oder einen seiner Nachfolger verwenden. Sehen Sie sich die folgenden Beispiele an, um zu sehen, was Sie mit dem Linux-Befehl ps machen können.
1. Aktuelle Prozesse drucken
Standardmäßig zeigt ps nur wenige Informationen an. Wenn Sie den Befehl ps ohne Argumente ausführen, werden die Prozesse ausgegeben, die der aktuellen Linux-Shell zugeordnet sind. Es findet die Prozesse, deren effektive Benutzer-ID (euid=EUID) gleich der des aktuellen Benutzers ist und der aufrufenden Terminalsitzung zugeordnet ist.
$ ps
Die Ausgabeliste enthält die Prozess-IDs (PID) der Prozesse, den mit den Prozessen verknüpften Terminalnamen, ihre kumulierte CPU-Zeit und den Namen der ausführbaren Datei.
2. Alle aktiven Prozesse drucken
Der obige Befehl druckt nur die aktuelle Prozessliste. Wenn Sie alle aktiven Prozesse anzeigen möchten, verwenden Sie stattdessen einen der folgenden Befehle.
$ ps -A $ ps -e- -
Tatsächlich sind diese beiden ps-Befehle identisch. Die Ausgabe sollte eine große Anzahl von Prozessen enthalten. Dies sind die untergeordneten Prozesse, die von übergeordneten Prozessen aufgerufen werden.
3. Druckprozesse im BSD-Format
Der Linux-Befehl ps kann auch Prozessstatus in einem BSD-Format anzeigen. Dies ist für Administratoren geeignet, die im Rahmen ihrer Arbeit sowohl Linux- als auch BSD-Systeme verwalten. Die folgenden Beispiele zeigen die Prozesse, die dieses Format verwenden.
$ ps aux $ ps ax
Beachten Sie, dass Benutzer davon absehen müssen, die BSD-Optionen mit Bindestrichen zu gruppieren. Die Bedeutung des folgenden Befehls unterscheidet sich von der obigen.
$ ps -aux
4. Druckprozesse im Vollformat
Sie können das Ausgabeformat Ihrer ps-Befehle erweitern und detailliertere Informationen abrufen. Dazu müssen Sie jedoch die Option -f oder -F verwenden. Der folgende Befehl zeigt alle aktuellen Prozesse in diesem vollständigen Format an.
$ ps -ef
Hier gruppieren wir die Option -e mit -f. Dadurch werden einige zusätzliche Informationen wie die übergeordnete Prozess-ID (PPID) und die CPU-Auslastungsindikatoren bereitgestellt. Die Option -F erweitert dieses Format um etwas mehr Daten.
$ ps -eF
5. Alle Prozesse für aktuellen Benutzer drucken
Das Flag -x von ps ermöglicht es uns, alle Prozesse anzuzeigen, die dem aktuellen Benutzer gehören. Dies ist eine einfache Möglichkeit, die mit Ihrem aktuellen Benutzer verbundenen Prozesse zu ermitteln.
$ ps -x
Dieser Befehl erzeugt eine Liste aller aktiven Prozesse für den aktuellen Benutzer. Es zeigt nützliche Metriken wie Statistik und Zeit neben PIDs und Befehlsnamen an. Ein TTY-Wert von „?“ gibt an, dass diesem bestimmten Prozess derzeit keine Terminalsitzung zugeordnet ist.
6. Alle Prozesse für bestimmte Benutzer drucken
Wir können auch die Prozessliste für einen bestimmten Benutzer mit der Option -u oder -U drucken. Die folgenden Beispiele veranschaulichen, wie sie funktionieren. Ersetzen Sie einfach den Benutzernamen durch einen bestehenden Benutzer auf Ihrem System.
$ ps -U ubuntupit $ ps --User ubuntupit
Diese beiden Befehle sind identisch und geben einfach den Prozess für den Benutzer ubuntupit aus. Die Option -U oder –User wählt die Prozesse nach echter Benutzer-ID (RUID) oder Name aus.
$ ps -u ubuntupit $ ps --user ubuntupit
Die obigen Linux-ps-Befehle sind ebenfalls identisch, aber im Gegensatz zu den früheren Beispielen wählen sie die Prozesse nach der effektiven Benutzer-ID (EUID) oder dem Namen aus.
7. Alle Prozesse für Root drucken
Sie können den Befehl ps in Linux verwenden, um herauszufinden, welche Prozesse Root gehören und mit den Rechten des Root-Benutzers ausgeführt werden. Verwenden Sie den folgenden Befehl, um diese Prozesse anhand der echten Benutzer-ID (RUID) zu finden.
$ ps -U root $ ps --User root
Verwenden Sie die Option -u oder –user, um sie anhand ihrer effektiven Benutzer-ID (EUID) zu finden, wie in den folgenden Beispielen gezeigt.
$ ps -u root $ ps --user root
Administratoren können diese beiden Optionen auch in einem einzigen Befehl kombinieren. Das folgende Beispiel gibt alle Prozesse aus, die root gehören, und verwendet sowohl ihre RUID als auch ihre EUID.
$ ps -u root -U root
8. Alle Prozesse für bestimmte Gruppe drucken
Das Flag -G oder -g des Befehls ps ermöglicht es uns, die Prozesse auszugeben, die Teil einer Gruppe sind. Sie können sie beispielsweise verwenden, um alle Prozesse zu lokalisieren, die von jemandem aus einer Gruppe von Benutzern geöffnet wurden. Gruppen in Linux beziehen sich auf eine Gruppe von Benutzern, die die gleichen Berechtigungen für das jeweilige Linux-Dateisystem oder die Ressourcen haben.
$ ps -fG techsupport $ ps -fG 100
Diese Befehle drucken die Prozesse, die dem technischen Support der Gruppe gehören. Die Option -G verwendet die echte Gruppen-ID (RGID) oder den Namen und hat eine Langform namens –Group. Die Option -g wählt die Prozesse basierend auf der effektiven Gruppen-ID (EGID) oder dem Namen aus.
$ ps -fg techsupport $ ps -fg 100
Die Langform für -g ist –group.
9. Druckprozesse basierend auf PID
Wie wir bereits besprochen haben, ist die PID oder Prozess-ID eine eindeutige Kennung für jeden einzelnen Prozess auf unseren Systemen. Wir können diese PID-Informationen verwenden, um einen bestimmten Prozess zu lokalisieren. Der folgende Befehl veranschaulicht dies anhand eines einfachen Beispiels.
$ ps -p 2829 $ ps --pid 2829
Dieser Befehl wählt den Prozess aus, dessen PID gleich 2829 ist. Sie können auch mehrere PIDs angeben, indem Sie eine durch Kommas getrennte Liste oder die Erweiterung mit geschweiften Klammern verwenden.
$ ps -p 2890,2891,2892,2893,2894,2895
Dieses Beispiel sucht nach sechs spezifischen PIDs. Andererseits sucht der folgende Linux-ps-Befehl nach einer Reihe von Prozess-IDs.
$ ps -p 29{1..99}
10. Druckprozesse basierend auf PPID
Wenn Sie die Prozesse anhand ihrer PPID anzeigen möchten, sollten Sie den folgenden Befehl verwenden. Das Flag –ppid des Dienstprogramms ps wählt Prozesse nach PPID aus.
$ ps --ppid 1111,1122,1133
Sie können mehr als eine PPID angeben, indem Sie entweder geschweifte Klammern oder eine durch Kommas getrennte Liste von Prozessen verwenden.
$ ps --ppid 2890,2891,2892,2893,2894,2895 $ ps --pid 29{1..99}
11. Druckvorgänge im Schnellmodus
Der Linux-Befehl ps unterstützt einen Schnellmodus zum Auswählen von Prozessen anhand ihrer PIDs. In diesem Modus liest ps nur die wesentlichen Daten und verwendet keine zusätzlichen Filterregeln. Außerdem werden die gedruckten PIDs nicht sortiert oder aufbewahrt.
$ ps -q 2480,2532,2533 $ ps --quick-pid 2480,2532,2533
Der Schnellmodus unterstützt mehrere PIDs sowie Bereichserweiterungen. Dies ist eine schnellere Operation und eignet sich zum Lokalisieren von Prozessen innerhalb von Millisekunden.
12. Druckprozesse basierend auf TTY
Ein TTY oder TeleTYpewriter bezeichnet eine Terminalsitzung, die mit der Standardeingabe verbunden ist. Sie können Prozesse basierend auf TTY auswählen, indem Sie das Flag -t von ps verwenden.
$ ps -t /dev/pts/0 $ ps --tty /dev/pts/0
Wie Sie sehen können, unterstützt ps auch eine Langform für diese Option. Im obigen Befehl /dev/pts/0 ist Terminal für meine aktuelle Sitzung. Sie müssen dies durch das tty ersetzen, das Ihrer persönlichen Sitzung zugeordnet ist. Eine einfachere Methode besteht darin, den Terminalnamen direkt aus Ihrer Shell zu interpolieren, wie unten gezeigt.
$ ps -t $(tty)
Dadurch wird das tty-Feld für Ihr Terminal ersetzt. Sie können auch mehrere tty gruppieren, indem Sie die zuvor gezeigten Methoden zur Bereichserweiterung verwenden.
13. Druckprozesse für bestimmte Befehle
Wie Sie bereits bemerken sollten, werden Prozesse als Teil eines Befehls erzeugt. Immer wenn Sie einen Ihrer bevorzugten Linux-Terminalbefehle ausführen, ruft er mehrere Prozesse auf, um seine Gebote abzugeben. Die Option -C des Befehls ps ermöglicht es uns, Prozesse basierend auf dem Namen der ausführbaren Dateien auszuwählen, von denen sie ein Teil sind.
$ ps -C chrome
Wie die meisten Flags ermöglicht auch die Option -C Administratoren, mehrere Befehle für Prozesse auszuwählen. Die folgenden Beispiele zeigen ein einfaches Listenbeispiel.
$ ps -C chrome,apache,gedit
Benutzer dürfen jedoch keine Leerzeichen zwischen der Liste verwenden, sonst kann ps die Eingabe nicht parsen.
14. Drucken Sie den Prozessbaum
Der Prozessbaum zeigt eine visuelle Verbindung zwischen den laufenden Prozessen auf Ihrem System. Dadurch lassen sich Prozesszusammenhänge und Querverbindungen sehr einfach visualisieren. Das folgende Beispiel zeigt uns, wie es geht.
$ ps -eH
Die Option -e wählt alle Prozesse aus und -H zeigt die Prozesshierarchie an. Sie können auch die Optionen -f oder –forest verwenden. Eine ASCII-Art-Prozesshierarchie wird für die Option f und ein Baum für –forest ausgegeben.
$ ps -e f
Beachten Sie das Leerzeichen zwischen -e und f. Außerdem steht vor dem f-Flag kein Bindestrich.
$ ps -e --forest
15. Prozessbaum für bestimmte Befehle drucken
Wir können die Verbindung zwischen einem Linux-Befehl und den damit verbundenen Prozessen leicht anzeigen, indem wir die Option -C mit einem von entweder -H, f oder –forest kombinieren. Die folgenden Befehle zeigen einige einfache Beispiele dafür für unsere Leser.
$ ps -H -C chrome $ ps f -C chrome
Da -C für die Prozessauswahl und -H/f für die Änderung des Ausgabeformats verwendet wird, können diese beiden Optionen nicht kombiniert werden.
$ ps --forest -C chrome
16. Drucken Sie die Threads für einen Prozess
Die Option -L des Linux-Befehls ps ermöglicht es uns, die mit Prozessen verknüpften Threads anzuzeigen. Das folgende Beispiel gibt die Threads für den Prozess chrome.
aus$ ps -L -C chrome
Dadurch wird der LWP (leichter Prozess) für den ausgewählten Prozess, in diesem Fall Chrom, bereitgestellt. Verwenden Sie die Option -f, um mehr Daten zu erhalten.
$ ps -fL -C chrome
Dieser Befehl zeigt den NLWP (Anzahl der Lightweight-Prozesse) neben dem LWP an. Sie können mehrere Prozesse auswählen, indem Sie ihre PID oder ihren Befehlsnamen verwenden.
17. Drucken Sie die Liste aller Formatspezifizierer
Der Befehl ps unterstützt neben PID, TTY und CMD eine Vielzahl von Formatbezeichnern. Sie können die gesamte Liste aller unterstützten Spezifizierer drucken, indem Sie die Option L verwenden.
$ ps L
Beachten Sie, dass diese Option der Option ähnelt, die zum Drucken von Threads verwendet wird. Das Vorhandensein oder Fehlen des Bindestrichsymbols ermöglicht es ps zu analysieren, nach welcher Ausgabe Sie suchen.
18. Spezifische Ausgabespalten drucken
Der obige Befehl zeigt die Ausgabeoptionen an, die uns für ps zur Verfügung stehen. Jetzt können wir nur bestimmte Informationen für einen Prozess auswählen, indem wir das Ausgabeformat selbst definieren. Beispielsweise zeigen die folgenden Befehle PPID, STATE und CMD für den Prozess chrome an.
$ ps -o ppid,state,cmd -C chrome $ ps --format ppid,state,cmd -C chrome
Mit der Option -o oder –format können wir also bestimmte Spalten für unsere Ausgabe auswählen. Das folgende Beispiel druckt nur die PPID-Informationen für alle Prozesse aus.
$ ps -eo ppid
19. Spezifische Ausgabespalten für ausgewählte Prozesse drucken
Das folgende Beispiel zeigt die PPID-, Status-, cmd-, tty- und EUID-Informationen für einen bestimmten Prozess an. Wir verwenden die PID-Informationen, um unseren Zielprozess in diesem Befehl zu lokalisieren.
$ ps -p 2434 -o ppid,state,cmd,tty,euid
Das nächste Beispiel findet dieselben Informationen, jedoch für eine Reihe von Prozessen.
$ ps -p 2424,2434,2444,2454,2464 -o ppid,state,cmd,tty,euid
Denken Sie daran, weder zwischen der PID-Liste noch in der Ausgangsspezifikationsliste Leerzeichen einzufügen. Wenn Sie Leerzeichen verwenden möchten, entfernen Sie die Kommas und setzen Sie sie in doppelte Anführungszeichen.
$ ps -p "2424 2434 2444 2454 2464" -o "ppid state cmd tty euid"
20. Nur Prozessnamen drucken
Angenommen, Sie möchten den Namen eines Prozesses für eine bestimmte Prozess-ID wissen und möchten keine zusätzlichen Informationen. Eine Möglichkeit, dies zu tun, besteht darin, den Prozessstatus mithilfe der PID auszudrucken und die erforderliche Spalte entweder mithilfe von Linux-Cut-Befehlen oder awk auszuschneiden. Es gibt jedoch eine viel einfachere Lösung für dieses Problem.
$ ps -q 2434 -o comm=
Dieser Befehl zeigt nur den Prozessnamen für die PID 2434 an. Er verwendet den Schnellmodus zur Auswahl dieser PID. Sie können auch -p oder –pid verwenden, wenn Sie möchten.
21. Alle PIDs für einen Prozess drucken
Wenn Sie Linux-Shell-Skripte schreiben oder Systemprüfungen durchführen, müssen Sie möglicherweise alle PIDs herausfinden, die einem bestimmten Prozess zugeordnet sind. Glücklicherweise ist dies mit dem Linux-Befehl ps sehr einfach. Der folgende Befehl zeigt alle PIDs für den Prozess chrome an.
$ ps -C chrome -o pid=
Dieser Befehl kombiniert einfach die Option -C von ps mit dem Ausgabebezeichner -o. Wie Sie sehen sollten, enthält die Ausgabe nur PID-Werte, keine zusätzlichen Daten. Daher ist es für die Verwendung mit Shell-Skripten geeignet.
22. Ausführungszeit für einen Prozess drucken
Die Ausführungszeit eines Prozesses gibt an, wie viel Zeit die CPU hinter der Aufgabe verbringt. Es ist eine großartige Möglichkeit, fehlerhafte Prozesse zu finden, die zu viel CPU-Zeit verbrauchen. Der folgende Befehl zeigt Ihnen, wie Sie diese Ausführungszeit für einen bestimmten Prozess in Linux finden.
$ ps -eo etime,user,comm | grep chrome
In diesem Beispiel wird der Linux-Befehl grep verwendet, um den spezifischen Prozess aus der gesamten Prozessliste herauszufiltern. Sie können den Prozessnamen auch mit der Option -C von ps angeben.
$ ps -o etime,user,comm -C chrome
Da wir den Prozess nach Namen auswählen, müssen wir die Option -e nicht angeben.
23. Statistiken zur CPU- und Speichernutzung drucken
Wir können den Befehl ps verwenden, um die CPU- und Speicherauslastung unserer Prozesse anzuzeigen. Dies ist sehr nützlich, wenn Sie fehlerhafte Prozesse ermitteln oder die Ressourcennutzung beheben. Die folgenden Beispiele veranschaulichen, wie das geht.
$ ps -eo pid,ppid,cmd,%mem,%cpu $ ps -eo "pid ppid cmd %mem %cpu"
Diese Befehle zeigen zwei zusätzliche Spalten für die CPU- und Speicherauslastung für die Prozessliste an. Wenn Sie die Ressourcennutzung für einen bestimmten Prozess sehen möchten, verwenden Sie die Option -C und lassen Sie -e weg.
$ ps -o pid,ppid,cmd,%mem,%cpu -C chrome
24. Drucken Sie die CPU- und Speicherauslastung nach dem Sortieren
Die obigen Befehle sind für sich genommen nicht sehr ordentlich, da die Ausgabe viele Prozesse enthält. Außerdem wirken sich viele davon nicht stark auf die CPU-Ressourcen aus. Glücklicherweise können wir die Ausgabedaten sortieren, um die Prozesse herauszufinden, die die höchsten Ressourcen verwenden.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
Dieser Befehl sortiert die Ausgabe von ps und füttert die Daten mit dem Befehl head. Es erzeugt die Top-Prozesse, die für die meiste CPU-Auslastung verantwortlich sind. Wenn Sie Prozesse herausfinden möchten, die Ihr System zum Hängen bringen, verwenden Sie diesen Befehl.
25. Verstrichene Zeit für Prozesse drucken
Die verstrichene Zeit für einen Linux-Prozess gibt die Zeit seit dem Start durch Ihr System an. Das Dienstprogramm ps kann diese Zeit im Format [[dd-]hh:]mm:ss anzeigen. Sehen Sie sich das folgende Beispiel an, um zu sehen, wie das funktioniert.
$ ps -C chrome -o pid,etime=
Dieser Befehl zeigt die PIDs für den Chrome-Prozess und die Informationen zur verstrichenen Zeit an. Wir können den Prozess auch mit seiner PID oder PPID angeben, wie unten gezeigt.
$ ps --ppid 1736 -o pid,etime=
26. Beenden Sie hängende Prozesse mit dem Linux-PS-Befehl
Wenn Sie Probleme mit dem Hängen der CPU haben, sollten Sie die Prozesse beenden, die zu viele CPU-Ressourcen verwenden. Sehen Sie sich unsere frühere Anleitung zum Beenden oder Beenden eines Linux-Prozesses an, um dieses Problem zu mindern. Der folgende einzeilige Shell-Befehl ist jedoch eine praktische Möglichkeit, diese Aufgabe zu erledigen.
$ ps aux | grep -e 'nano' | awk '{print $2}' | xargs kill -9
Dieser Befehl verwendet mehrere nützliche Linux-Terminalbefehle, um den eingefrorenen Prozess herauszufinden und ihn zu beenden. Sehen Sie sich unsere Anleitung zum Linux-Befehl awk an, um zu erfahren, wie wir die Daten gefiltert haben.
27. Überwachung der Prozessnutzung in Echtzeit
Der Linux-Befehl ps liefert nur einen statischen Snapshot der Prozesse. Das oberste Dienstprogramm wird zur Überwachung von Prozessen und Ressourcennutzung in Echtzeit verwendet. Wir können jedoch ps mit dem watch-Befehl kombinieren, um Prozesse in Echtzeit zu überwachen.
$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
Dieser Befehl bietet jede Sekunde eine Live-Ansicht des Prozessstatus und ihres Ressourcenverbrauchs. Der Head-Befehl wird verwendet, um die Anzahl der Ausgabezeilen zu reduzieren.
28. Lokalisieren Sie Speicherlecks
Speicherlecks sind ein häufiges Problem bei vielen Anwendungen, die das Client-Server-Modell verwenden. Technisch bedeutet dies, dass der einer App zugewiesene Speicher nicht freigegeben wird, wenn die App geschlossen wird. Die folgenden Befehle können Administratoren dabei helfen, Speicherlecks zu erkennen.
$ ps -ef -o pid,pmem --sort pmem | tail -5 $ ps -ef -o pid,pmem --sort %mem | tail -5
Beachten Sie, dass pmem ein Synonym für %mem im Linux-ps-Befehl ist. Notieren Sie sich nun die PID, die den meisten Speicher verbraucht, und finden Sie mit dem folgenden Befehl detaillierte Informationen zu diesem Prozess.
$ ps ev --pid=1776
Führen Sie diesen Befehl mehrmals aus oder verwenden Sie das Watch-Dienstprogramm, um zu überwachen, ob sich der Wert des RSS-Felds erhöht. Wenn dies der Fall ist, ist dies ein Zeichen für ein Speicherleck.
$ watch -n 1 'ps ev --pid=1776'
29. Untergeordnete Prozesse für bestimmten Prozess drucken
Multitasking-Betriebssysteme wie Linux ermöglichen es Prozessen, ihre eigenen untergeordneten Prozesse zu erstellen. Dies geschieht normalerweise durch eine von zwei Prozeduren, das System ruft fork() oder spawn() auf. Wie auch immer, Sie können die Liste der untergeordneten Prozesse, die von einem bestimmten Prozess erstellt wurden, mit dem Linux-Befehl ps drucken.
$ ps -o pid,uname,comm -C chrome $ ps -o pid,uname,comm -C chrome --forest
Diese zeigen die untergeordneten Prozesse für den Prozess Chrom an. Das Hinzufügen der Option –forest hilft, die Beziehung zwischen den Prozessen zu visualisieren.
30. Spaltenbeschriftungen umbenennen
Das standardmäßige Benennungsschema der Ausgabespalten für ps ist ziemlich kurz und kann einige Benutzer verwirren. Es ist jedoch sehr einfach, diese Etiketten umzubenennen und benutzerdefinierte Namen für sie einzurichten. Der folgende Befehl veranschaulicht dies anhand eines einfachen Beispiels.
$ ps -e -o pid=PID,uname=USER,cpu=CPU,%mem=MEM%,comm=COMMAND
Dies macht es sehr einfach, die respektierten Spalten zu identifizieren und Verwechslungen zu vermeiden.
31. Sicherheitsinformationen für Linux PS-Befehl drucken
Benutzer können Sicherheitskontextinformationen für ihre Prozesse mit den Flags –context, -N oder Z ausdrucken. Sehen Sie sich die folgenden Befehle an, um zu sehen, wie sie funktionieren.
$ ps -C chrome --context $ ps -C chrome Z $ ps -C chrome -M
Diese Befehle zeigen den SELinux-Kontext für das Prozesschrom an. Allerdings sollte SELinux in Ihrem System aktiviert sein, damit diese Linux-ps-Befehle funktionieren.
32. Alle Benutzerinformationen drucken
Benutzer können jede Art von Benutzerinformationen für einen bestimmten Prozess abrufen, indem sie nur die Benutzermodifikatoren für die Ausgabe auswählen. Sehen Sie sich den folgenden Befehl an, um zu verstehen, wie das funktioniert.
$ ps -C chrome -o pid,euser,ruser,suser,fuser $ ps -C chrome -o "pid euser ruser suser fuser"
Diese beiden Befehle sind identisch und geben einfach alle Benutzerinformationen aus, die ps für den Chrome-Prozess zur Verfügung stehen. Sie können die Option -C entfernen und -e hinzufügen, um diese Daten für alle aktiven Prozesse auf Ihrem System zu erhalten.
33. Drucksignalformat für Prozesse
Signale sind ein grundlegender Weg der Kommunikation zwischen Prozessen oder IPC. Sie werden verwendet, um anzugeben, wann ein Prozess angehalten werden muss oder wann Ressourcen freigegeben werden müssen und so weiter. Mit dem Dienstprogramm ps können Benutzer das Signalformat für jeden Prozess anzeigen. Sehen Sie sich das folgende Beispiel an, um zu sehen, wie dies in der Praxis funktioniert.
$ ps s -C chrome
Dadurch wird eine Liste von Chrome-Prozessen neben verschiedenen Signalinformationen in den Abschnitten „Ausstehend“, „Blockiert“, „Ignoriert“ und „Erwischt“ angezeigt. Dies kann nützlich sein, wenn Sie Low-Level-Systemaufrufe debuggen.
34. Benutzerorientiertes Format für Prozesse drucken
Das anwenderorientierte Format macht es einfach, Prozessdaten für Benutzer zu visualisieren. Es ist dem Ausgabeformat im BSD-Stil ziemlich ähnlich. Führen Sie einfach den folgenden Befehl in Ihrem bevorzugten Linux-Terminalemulator aus, um zu sehen, wie die Ausgabe aussieht.
$ ps u -C chrome
Ähnlich wie beim BSD-Format ist das u Die Option benötigt kein vorangestelltes Bindestrichsymbol. Die Ausgabe ist sehr übersichtlich und enthält dennoch detaillierte Informationen, einschließlich PID, CPU-Auslastung, Speicherauslastung, Status, verstrichene Zeit und so weiter.
35. Alle bis auf einige Prozesse drucken
Der Linux-Befehl ps bietet eine praktische Möglichkeit, Prozesslisten zu negieren oder zu ergänzen, die als Deselect bezeichnet werden. Dadurch können Benutzer alle Prozesse drucken, außer denen, die bestimmte Anforderungen erfüllen. Sehen Sie sich die folgenden Befehle an, um zu sehen, wie das funktioniert.
$ ps -C chrome --deselect $ ps -C chrome -N
Sowohl die Optionen -N als auch –deselect sind identisch und erzeugen daher dieselbe Ausgabe. Die Ausgabe dieser Befehle enthält eine Liste aller Prozesse mit Ausnahme von Chrome. Sie funktionieren auch mit jeder anderen Option. Beispielsweise druckt der folgende Befehl alle PIDs außer den erwähnten.
$ ps -p{1..100} --deselect
Die Ausgabe enthält eine Liste aller PIDs mit Ausnahme von 1 bis 100.
36. Druckprozesse mit dem BSD-Langformat
Durch die Verwendung des langen Formats für Ausgaben können Benutzer mit einem einzigen ps-Befehl mehr Informationen abrufen. Verwenden Sie einfach die Option -l, um den Ausgabemodus auf BSD-Langformat einzustellen.
$ ps -el
Sie können mit dieser Option auch eine zusätzliche Option -y verwenden. Es wird das ADDR-Flag ausschalten und stattdessen RSS verwenden.
$ ps -ely
Die Ausgabe dieses Befehls enthält Informationen wie PID, PPID, UID, CPU-Nutzung, Prozesspriorität, Speichernutzung, Größe usw.
37. Debugging-Informationen drucken
Der folgende Befehl zeigt die Debugging-Informationen an, die Benutzern für den Befehl ps zur Verfügung stehen. Dies kann praktisch sein, wenn Sie Programme und Prozesse debuggen.
$ ps --info
Die Ausgabe dieses Befehls enthält viele nützliche Informationen wie Kompilierungs-Flags, Bibliotheken, Compiler, Header-Daten, Version und so weiter.
38. Versionsinformationen anzeigen
Das Dienstprogramm ps ist eines der ältesten Tools zur Prozessüberwachung für Linux und BSD. Es hat sich im Laufe der Zeit stark weiterentwickelt und verfügt über eine Reihe wichtiger Implementierungen. Da sich die Dinge oft von Version zu Version unterscheiden, müssen Sie einige der Befehle basierend auf der genauen Version verwenden, die auf Ihrem System installiert ist.
$ ps --version $ ps -V $ ps V
Alle obigen Befehle sind identisch und zeigen einfach die Versionsinformationen für procps-ng an . Dies ist die Prozessüberwachungssuite, die den Befehl ps enthält.
39. Hilfeinformationen anzeigen
Die Hilfeseite enthält eine zusammengefasste Liste nützlicher Informationen zu Linux-Befehlen. Die Syntax dafür in ps ist die folgende.
$ pf --help section
Hier bezieht sich das Schlüsselwort section auf eines von simple, list, output, threads, misc und all. Außerdem können sie durch die Anfangsbuchstaben wie s, l, o, t, m und a ersetzt werden.
$ ps --help simple $ ps --help threads $ ps --help all
40. Zeigen Sie die Handbuchseite an
Das Handbuch oder die Manpage der Linux-Befehle enthält detaillierte Informationen zu allen verfügbaren Optionen und deren Verwendung. Dies ist der perfekte Ort, um mit dem Lernen von PS zu beginnen.
$ man ps
Mit den Bild-auf- und Bild-ab-Tasten Ihrer Tastatur können Sie bequem durch diese Dokumentation blättern. Drücken Sie q, um zu Ihrer Shell zurückzukehren.
Abschlussgedanken
Der Linux-ps-Befehl ist ein einfaches, aber vielseitiges Tool für Administratoren. Es ermöglicht Benutzern, Prozessinformationen einfach zu finden und Aufgaben wie Überwachung, Fehlerbehebung und Auditierung durchzuführen. Wenn Sie einen hochbezahlten Informatikjob annehmen möchten, der Linux nutzt, sollten Sie mehr als geschickt im Umgang mit ps sein. Aus diesem Grund haben unsere Redakteure diesen Leitfaden mit vielen praktischen Beispielen kuratiert.
Wenn Sie ein absoluter Anfänger sind, dann markieren Sie diesen Leitfaden für zukünftige Referenzen. Hoffentlich haben wir Ihnen die wesentlichen Informationen zur Verfügung gestellt, die Sie gesucht haben. Hinterlassen Sie uns unten einen Kommentar, wenn Sie weitere Fragen oder Tipps haben.