przegląd

w tym krótkim samouczku dowiesz się, jak znaleźć identyfikator procesu nadrzędnego w Linuksie z wiersza poleceń.

dowiesz się również, jak znaleźć Dzieci danego ID procesu macierzystego za pomocą poleceniaps.

omówimy również, jak wypisać pełne drzewo procesów nadrzędnych za pomocą poleceniapstree. Bardzo pomocna rzecz, gdy chcesz zidentyfikować wszystkie dzieci danego rodzica, ich identyfikatory i imiona, które mogą być potrzebne podczas zabijania procesu.,

zmienna środowiskowa ID procesu macierzystego

identyfikator procesu macierzystego bieżącego kontekstu jest wyświetlany jako zmienna środowiskowa. Aby zobaczyć wartość, możesz ją odtworzyć.

echo $PPID

na przykład, jeśli jesteś SSH’D na serwerze Linux, wartość zmiennej środowiskowej $PPIDbędzie identyfikatorem procesu SSH.

zmienna środowiskowa wyświetla tylko identyfikator procesu., Aby zobaczyć, czym jest proces macierzysty, możemy użyć polecenia ps ze zmienną środowiskową $PPID.

ps -e | grep $PPID

Znajdź Identyfikator procesu macierzystego uruchomionego procesu

aby określić proces macierzysty określonego procesu, używamy poleceniaps.

ps -o ppid= -p 9801

wyjście zawiera tylko identyfikator procesu nadrzędnego. Używając wyjścia z poleceniaps możemy określić nazwę procesu.,

ps -e | grep 9801
2029 ? 00:00:14 apache2

lista procesów potomnych procesu nadrzędnego

z identyfikatorem procesu nadrzędnego możemy wyszukać wszystkie procesy potomne za pomocą poleceniapgrep.

pgrep -laP $PPID

dla typowego rodzica SSH wyjście wyświetli listę następujących procesów

30797 -bash30798 /usr/lib/openssh/sftp-server

wyświetli drzewo procesów

innym użytecznym narzędziem jest poleceniepstree. Polecenie to wyświetli drzewo procesów potomnych o identyfikatorze procesu nadrzędnego., Na przykład, aby wyświetlić drzewo procesów potomnych z bieżącego procesu nadrzędnego, należy uruchomić następujące polecenie.

pstree $PPID
sshd─┬─bash───pstree └─sftp-server

z powyższego przykładu możemy zobaczyć, że processshd jest naszym bieżącym ID procesu nadrzędnego (PPID) i że ma dwa procesy potomne. Proces potomny to bash I sftp-server.

możemy również zobaczyć, że bashproces ma swoje własne dziecko, które jest pstree polecenie, które właśnie wykonaliśmy.,

poleceniepstree może również wypisać identyfikator procesu każdego procesu w drzewie. Aby wyświetlić identyfikatory procesów, należy użyć znacznika -p. Oto przykład drzewa procesów dla serwera Apache.

pstree -p 2029