Rozumiem, że proces zombie umarł, ale nadal istnieje jako symbol zastępczy w tabeli procesów, dopóki jego rodzic (lub init
jeśli sam zombie jest sierotą) sprawdzi status wyjścia.
I rozumiem, że procesy osierocone są takie, które wciąż żyją i działają, ale których rodzic umarł.
Ponieważ zombie już nie żyje, jego dzieci byłyby uważane za sieroty, prawda? Czy wpłynie to na ich zebranie zombie? W szczególności, czy init
adoptowaliby je jako swoje dzieci dopiero po zebraniu zombie, czy też byłyby adoptowane, gdy tylko rodzic stał się zombie?
init
process-management
zombie-process
Dzika karta
źródło
źródło
init
gdy tylko ich rodzic umrze (i obejmuje to przekształcenie się w zombie). Zombie nie zaopiekuje się dziećmi. Nic nie zrobi. To tylko informacja o stanie śmierci unosząca się wpid
miejscu.init
?init
je zbierze.Odpowiedzi:
Poprawny.
Poprawny.
Tak. Kiedy rodzic umiera, jest martwy. W odniesieniu do swoich dzieci nie ma znaczenia, czy rodzic pozostanie jako zombie: dzieci stają się sierotami w chwili śmierci rodzica, a następnie tracą kontakt z rodzicem.
Nie, i to drugie, jak wyżej.
źródło
Jeśli wyniki eksperymentów się powiodą, wydaje się, że przynajmniej
systemd
init zbierze sieroty zombie, gdy tylko będzie to możliwe:foo.c
:W jednym terminalu:
W innym terminalu:
źródło