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

Wie man den pstree-Befehl verwendet

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

Wie man pstree dazu bringt, auch Kommandozeilenargumente in die Ausgabe aufzunehmen

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:

Wie kann man pstree zwingen, identische Teilbäume in der Ausgabe zu erweitern?

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

Erweiterte Teilbäume

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

Wie man pstree dazu bringt, einen bestimmten Prozess hervorzuheben

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

Wie lassen Sie pstree Prozessgruppen-IDs in der Ausgabe anzeigen?

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:

Wie man den Prozessbaum der Baumanzeige für einen Benutzer spezifisch macht

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:

Wie Sie Pstree auf einen bestimmten Prozess beschränken

Weitere Informationen finden Sie auf der Manpage.

Das könnte dich auch interessieren …