Linux pstree Befehls-Tutorial für Anfänger (8 Beispiele)
Da jeder Prozess (mit Ausnahme des allerersten) in einem Linux-System einen Elternteil hat, ist es manchmal einfacher zu verstehen, wenn alle Prozesse in einer Baumstruktur angezeigt werden. Es wird Sie freuen zu erfahren, dass es ein Befehlszeilenprogramm – genannt pstree – gibt, das einen Baum von Prozessen anzeigt.
In diesem Tutorial werden wir die Grundlagen des Pstreebefehls anhand einiger leicht verständlicher Beispiele diskutieren. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele hier auf einem Ubuntu 22.04 Rechner getestet wurden.
Linux-Pstree-Befehl
Wie bereits eingangs erwähnt, zeigt der Befehl pstree einen Baum von Prozessen an. Die Syntax ist wie folgt:
pstree [options]
Und hier ist, was die Man Page des Tools dazu sagt:
pstree shows running processes as a tree. The tree is rooted at either pid or init if pid is omitted. If a user name is specified, all process trees rooted at processes owned by that user are shown. pstree visually merges identical branches by putting them in square brackets and prefixing them with the repetition count, e.g. init-+-getty |-getty |-getty `-getty becomes init---4*[getty] Child threads of a process are found under the parent process and are shown with the process name in curly braces, e.g. icecast2---13*[{icecast2}] If pstree is called as pstree.x11 then it will prompt the user at the end of the line to press return and will not return until that has hap? pened. This is useful for when pstree is run in a xterminal. Certain kernel or mount parameters, such as the hidepid option for procfs, will hide information for some processes. In these situations pstree will attempt to build the tree without this information, showing process names as question marks.
Im Folgenden finden Sie einige Beispiele im Stil von Fragen und Antworten, die Ihnen eine gute Vorstellung davon vermitteln sollen, wie der Befehl pstree funktioniert:
Q1. Wie wird der pstree Befehl verwendet?
Die grundlegende Verwendung ist einfach: Sie müssen nur ‚pstree‘ ohne jede Option ausführen.
pstree
Sie können also sehen, wie pstree prozessbezogene Informationen in der Ausgabe erzeugt.
Q2. Wie kann man pstree dazu bringen, auch Kommandozeilenargumente in die Ausgabe aufzunehmen?
Dies kann mit der Kommandozeilenoption -a geschehen.
pstree -a
Sie können also sehen, dass der Befehl pstree jetzt auch Befehlszeilenoptionen für einige Prozesse anzeigt.
Q3. Wie kann man pstree zwingen, identische Teilbäume in der Ausgabe zu erweitern?
Standardmäßig führt der Befehl pstree identische Zweige zusammen, indem er sie in eckige Klammern setzt und ihnen die Anzahl der Wiederholungen voranstellt. Etwas in der Art:
Wenn Sie jedoch möchten, können Sie das Werkzeug zwingen, identische Bäume zu erweitern, was Sie mit der Befehlszeilenoption -c tun können.
pstree -c
Q4. Wie kann man pstree dazu bringen, einen bestimmten Prozess hervorzuheben?
Falls Sie möchten, dass das Werkzeug einen bestimmten Prozess in der Ausgabe hervorhebt, verwenden Sie die Befehlszeilenoption -H.
pstree -H [PID]
Dabei ist PID die ID des Prozesses, den Sie hervorheben möchten. Zum Beispiel habe ich den Firefox-Prozess auf meinem System mit dem folgenden Befehl hervorgehoben:
pstree -H 3124
So können Sie sehen, dass der Name ‚Firefox‘ im Vergleich zu anderen Namen leicht hervorgehoben ist.
Q5. Wie lassen Sie pstree Prozessgruppen-IDs in der Ausgabe anzeigen?
Verwenden Sie dazu die Befehlszeilenoption -g.
pstree -g
Sie können also sehen, dass die Prozessgruppen-IDs als Dezimalzahlen in Klammern hinter jedem Prozessnamen angezeigt werden.
Q6. Wie kann man Pstree-Sortierprozesse auf der Grundlage von PIDs durchführen?
Standardmäßig sortiert pstree Prozesse mit demselben Vorfahren nach dem Namen. Wenn Sie jedoch wollen, können Sie auch pstree-Sortiervorgänge nach PIDs haben, was Sie mit der Befehlszeilenoption -n tun können.
pstree -n
Beachten Sie, dass diese Art der Sortierung auch als numerische Sortierung bekannt ist.
Q7. Wie kann man den Prozessbaum der Baumanzeige für einen Benutzer spezifisch gestalten?
Wenn Sie möchten, dass pstree alle Prozessbäume anzeigt, die in Prozessen verwurzelt sind, die einem bestimmten Benutzer gehören, dann müssen Sie nur den Namen dieses Benutzers als Eingabe an den Befehl übergeben.
Zum Beispiel,
pstree himanshu
In diesem Fall wurde also folgende Ausgabe auf meinem System erzeugt:
Q8. Wie kann Pstree auf einen bestimmten Prozess beschränkt werden?
Wenn Sie möchten, dass pstree nur die übergeordneten und untergeordneten Informationen für einen bestimmten Prozess anzeigt, verwenden Sie die Option -s.
pstree -s [PID]
Zum Beispiel wollte ich die Ausgabe von Pstree auf den Firefox-Prozess auf meinem System beschränken, also führte ich den folgenden Befehl aus:
pstree -s 3124
Und hier ist die Ausgabe, die das Werkzeug angezeigt hat:
Weitere Informationen finden Sie auf der Manpage.