Verwendung pstree
nach Befehlsname
Mithilfe von können pstree
Sie nach dem Namen des untergeordneten Prozesses suchen und die Prozess-ID (PID) zusammen mit den Eltern, Großeltern und allen untergeordneten Elementen des untergeordneten Prozesses abrufen:
$ pstree -hp | grep sleep
|-cron(763)---cron(795)---sh(839)---display-auto-br(841)---sleep(8414)
In diesem Fall sleep
ist der untergeordnete Befehl und es ist PID 8414
. Die Eltern-ID lautet 841 und heißt display-auto-brightness
. Der Großelternteil ist eine Shell ( sh
) mit einer Prozess-ID von 839
. Der Urgroßvater hat cron
eine Prozess-ID von 795
. Die Ur-Ur-Großeltern haben auch cron
eine Prozess-ID von 763
.
Wenn Sie nach der Prozess-ID sleep
anstelle des Namens suchen möchten, können Sie Folgendes verwenden:
$ pstree -hp | grep 14653
|-cron(763)---cron(795)---sh(839)---display-auto-br(841)---sleep(14653)
Beachten Sie, dass die sleep
Prozess-ID in geändert wurde 14653
. Das übergeordnete Element (PID 841) schläft 1 Minute lang, wacht für einen Sekundenbruchteil auf und startet dann einen neuen sleep
Befehl, der eine neue Prozess-ID erhält. Dies ist ein weiterer Grund, warum das Suchen sleep
einfacher ist als das Suchen nach Prozess-ID.
Dieser Code stammt aus: Automatische Anpassung der Anzeigehelligkeit basierend auf Sonnenaufgang und Sonnenuntergang und Anpassung an diese Frage.
Verwenden Sie die PID anstelle des Namens, um eine verschachtelte Kette bis zum Startvorgang anzuzeigen:
$ pstree -aps 8541
systemd,1 splash fastboot kaslr
└─cron,763 -f
└─cron,795 -f
└─sh,839 -c /usr/local/bin/display-auto-brightness
└─display-auto-br,841 /usr/local/bin/display-auto-brightness
└─sleep,8541 60
Hinweis: Eine weitere Minute ist vergangen und der Befehl sleep erhält eine neue PID (8541).
ps -o args ...
die Ergebnisse zu nutzen, aber das riecht ein bisschen.