Wenn Sie auf einem Linux-Rechner arbeiten, müssen Sie manchmal herausfinden, welche Prozesse gerade ausgeführt werden. Es gibt eine Reihe von Befehlen, die Sie verwenden können, um Informationen über die laufenden Prozesse mit ps
zu finden und top
die am häufigsten verwendeten sind.
In diesem Artikel werden wir über den pstree
sprechen Befehl. Es ähnelt ps
, aber anstatt die laufenden Prozesse aufzulisten, werden sie in einer Baumstruktur angezeigt. Das baumähnliche Format ist eine bequemere Möglichkeit, die Prozesshierarchie anzuzeigen, und macht die Ausgabe optisch ansprechender.
So verwenden Sie den pstree
Befehl #
Die allgemeine Syntax für den pstree
Befehl lautet wie folgt:
ps [OPTIONS] [USER or PID]
In seiner einfachsten Form, wenn es ohne Option oder Argument aufgerufen wird, pstree
zeigt eine hierarchische Baumstruktur aller laufenden Prozesse:
pstree
systemd─┬─VBoxService───7*[{VBoxService}]
├─accounts-daemon───2*[{accounts-daemon}]
├─2*[agetty]
├─atd
├─cron
├─dbus-daemon
├─irqbalance───{irqbalance}
├─2*[iscsid]
├─lvmetad
├─lxcfs───2*[{lxcfs}]
├─networkd-dispat───{networkd-dispat}
├─nginx───2*[nginx]
...
Das Top-/Root-Element im Baum ist der übergeordnete Prozess aller Systemprozesse. In diesem Beispiel ist das systemd
, das ist der erste Prozess, der beim Booten gestartet wird.
pstree
führt identische Verzweigungen zusammen, indem es sie in eckige Klammern setzt und ihnen eine Ganzzahl voranstellt, die die Anzahl der Verzweigungen darstellt. Dadurch wird die Ausgabe lesbarer und optisch ansprechender.
Unten ist ein Beispiel, das zeigt, wie die eckigen Klammern verwendet werden:
├─2*[agetty]
ist dasselbe wie:
├─agetty
├─agetty
Um das Zusammenführen der identischen Zweige zu deaktivieren, verwenden Sie den -c
Möglichkeit:
pstree -c
Die Threads eines Prozesses werden unter dem übergeordneten Prozess angezeigt und mit dem Prozessnamen in geschweiften Klammern angezeigt. Hier ist ein Beispiel:
├─lxcfs───2*[{lxcfs}]
Verwenden Sie das -t
Option zum Anzeigen der vollständigen Thread-Namen. Wenn Sie Threads ausblenden und nur Prozesse anzeigen möchten, verwenden Sie das -T
Option.
Typischerweise pstree
zeigt viele Ausgabezeilen an, die nicht auf den Bildschirm passen. Um die Ausgabe seitenweise anzuzeigen, leiten Sie sie an less
weiter Befehl:
pstree | less
Wenn ein Benutzername als Argument angegeben wird, pstree
zeigt nur die Prozesse an, die diesem Benutzer gehören. Der folgende Befehl zeigt beispielsweise nur die Prozesse an, die von einem Benutzer namens „linuxize“ gestartet wurden:
pstree linuxize
Wenn PID als Argument angegeben wird, pstree
zeigt einen Baum mit dem angegebenen Prozess als Wurzel des Baums an. Hier ist ein Beispiel:
pstree 1943
sshd───bash───pstree
Um die übergeordneten Prozesse des angegebenen Prozesses anzuzeigen, verwenden Sie das -s
Option gefolgt von der Prozess-PID:
pstree -s 1943
systemd───sshd───sshd───bash───pstree
Zeige PIDs und PGIDs #
Normalerweise, wenn pstree
ausgeführt wird Befehl ist die wichtigste Information, nach der der Benutzer sucht, die Prozess-ID. Wenn Sie beispielsweise die PID kennen, können Sie einen fehlerhaften Prozess beenden.
Das -p
Option weist pstree
an um die PIDs anzuzeigen:
pstree -p
PIDs werden nach jedem Prozess oder Thread in Klammern angezeigt.
systemd(1)─┬─VBoxService(955)─┬─{VBoxService}(956)
│ ├─{VBoxService}(957)
│ ├─{VBoxService}(958)
│ ├─{VBoxService}(959)
│ ├─{VBoxService}(960)
│ ├─{VBoxService}(961)
│ └─{VBoxService}(962)
...
Standardmäßig pstree
, sortieren Sie Prozesse mit demselben übergeordneten Element nach Namen. Das -n
Option teilt pstree
mit Numerische Sortierung verwenden, d.h. nach PIDs sortieren:
pstree -pn
Die Prozessgruppen-ID oder PGIDs ist die Prozess-ID des ersten Mitglieds der Prozessgruppe. Verwenden Sie zum Anzeigen von PGIDs den -g
Möglichkeit:
pstree -g
PIDs werden auch in Klammern nach jedem Prozess oder Thread angezeigt.
systemd(1)─┬─VBoxService(954)─┬─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ └─{VBoxService}(954)
...
Wenn PIDs oder PGIDs angezeigt werden, ist das Zusammenführen implizit deaktiviert.
Befehlszeilenargumente anzeigen #
Einige Programme können mit Konfigurationsoptionen aufgerufen werden, die als Befehlszeilenargumente angegeben sind.
Standardmäßig ist die pstree
zeigt Ihnen nicht die Befehlszeilenargumente für die laufenden Prozesse. Um anzuzeigen, wie der Prozess gestartet wurde, verwenden Sie den Befehl zusammen mit -a
Möglichkeit:
pstree -a
...
├─agetty -o -p -- \\u --keep-baud 115200,38400,9600 ttyS0 vt220
├─agetty -o -p -- \\u --noclear tty1 linux
...
Hervorhebung #
pstree
ermöglicht Ihnen auch, Prozesse zur besseren visuellen Darstellung hervorzuheben.
Das -h
Option weist pstree
an um den aktuellen Prozess und alle seine Vorgänger hervorzuheben.
pstree -h
Um einen bestimmten Vorgang hervorzuheben, verwenden Sie -H
Option gefolgt von der Prozess-ID:
pstree -H PID_NUMBER
Wenn die Hervorhebung nicht unterstützt wird, wird der Befehl mit einem Fehler beendet.
Schlussfolgerung #
Der pstree
zeigt die laufenden Prozesse in Form einer Baumstruktur an.
Für Informationen über alle verfügbaren pstree
geben Sie man pstree
ein in Ihrem Terminal.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.