GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Pstree-Befehl unter Linux

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.


Linux
  1. Linux-mv-Befehl

  2. Linux-Du-Befehl

  3. kill-Befehlsbeispiele in Linux

  4. renice-Befehlsbeispiele in Linux

  5. Was ist ein Befehl, um die Priorität des Prozesses in Linux zu finden?

Bei Befehl unter Linux

Killall-Befehl in Linux mit Beispielen

5 schnelle Möglichkeiten, einen Prozess in Linux zu beenden

Df-Befehl unter Linux

Wie man einen Prozess unter Linux beendet

pstree-Befehlsbeispiele in Linux