Jak uzyskać pid dla rodziców z pid dla dzieci?
Wiem, że mogę to sprawdzić ręcznie pod / proc. Zastanawiam się, czy istnieje sprytny / lepszy sposób na osiągnięcie tego w Ubuntu. Pamiętaj, że rodzic może, ale nie musi, zostać zabity.
Dzięki
command-line
bash
process
Pamięć podręczna
źródło
źródło
ps -o args ...
wyników, ale to ma trochę zapachu.ppid=
ale przed pid wydaje się konieczna. Otrzymałem inne wyniki, jeśli je pominąłem.Używanie tylko zmiennej powłoki , aby uzyskać macierzysty PID:
jeśli potrzebujesz polecenia z tego nadrzędnego pid:
jeśli potrzebujesz pełnego wiersza poleceń (ze wszystkimi opcjami):
Wyjaśnienie
$PPID
jest zdefiniowany przez powłokę, jest to PID procesu nadrzędnego/proc/
, masz kilka katalogów z PID każdego procesu. Następnie, jeśli chceszcat /proc/$PPID/comm
, powtarzasz nazwę polecenia PIDSprawdź człowieka proc
źródło
PPID
zdefiniowany jako część standardu POSIX, więc każda powłoka zgodna z POSIX powinna to odpowiednio ustawić. Zobacz pubs.opengroup.org/onlinepubs/9699919799/utilities/…Używanie
pstree
według nazwy poleceniaZa pomocą tej opcji
pstree
możesz wyszukiwać według nazwy procesu potomnego i uzyskać identyfikator procesu (PID) wraz z rodzicami, dziadkami i wszystkimi dziećmi procesu potomnego:W tym przypadku
sleep
jest to polecenie potomne, a jego PID to8414
. Jego identyfikator nadrzędny to 841 i nazywa siędisplay-auto-brightness
. Dziadek jest powłoką (sh
) o identyfikatorze procesu839
. Pradziadek macron
identyfikator procesu795
. Prapradziadek ma równieżcron
identyfikator procesu763
.Jeśli chcesz wyszukiwać według identyfikatora procesu
sleep
zamiast nazwy, możesz użyć:Zauważ, że
sleep
identyfikator procesu został zmieniony na14653
. Nadrzędny (PID 841) śpi przez 1 minutę, budzi się na ułamek sekundy, a następnie uruchamia nowesleep
polecenie, które otrzymuje nowy identyfikator procesu. Jest to kolejny powód, dla którego wyszukiwaniesleep
jest łatwiejsze niż wyszukiwanie według identyfikatora procesu.Ten kod pochodzi z: Automatycznie dostosuj jasność wyświetlacza na podstawie wschodu i zachodu słońca i dostosował się do tego pytania.
Aby zobaczyć łańcuch zagnieżdżony od samego początku do procesu rozruchu, użyj PID zamiast nazwy:
Uwaga: Minęła kolejna minuta, a polecenie uśpienia otrzymuje nowy PID (8541).
źródło
807
lubcron
ta sama linia zostanie zrestartowana, a także więcej dzieci, jeśli zostaną odrodzone. Pytanie dotyczyło jednak znalezienia rodzica, a nie wszystkich dzieci.1
. Nie sądzę, że możesz zabić PID 1.ps -efj
można również użyć do tego samego.Na przykład,
źródło