Co je to zombie proces?
Zombie proces je instancí počítačového programu, který si zachovává záznam procesu tabulky, přestože dokončil provádění. Zaniklé procesy, jako jsou tyto, jsou obvykle spojeny s UNIX® a dalšími podobnými operačními systémy kvůli způsobu, jakým zpracovávají dětské procesy. Po dokončení provedení dítěte je rodič obvykle zodpovědný za jeho odstranění z procesní tabulky. Obvykle není možné přímo odstranit proces zombie s příkazem KILL, ačkoli rodič může být často vyroben, aby jej odstranil, pokud operátor používá oznámení signálu (Sigchld). Pokud toto selhání, zombie proces může být nepřímo odstraněn zabitím rodiče. Zaniklé procesy v UNIX® a podobných operačních systémech lze považovat za analogické s zombie v tom, že udržují přítomnost tabulky procesu, přestože již nevykonávají zamýšlené funkce. Když proces dokončilXecuting se někdy říká, že zemřel, zatímco prostředky, kterým operační systém získává alokaci procesní tabulky, lze znát jako sklizeň. Rodičovský proces zombie má technicky sklízet své děti, i když se to ne vždy děje.
Existují určité případy, kdy může být existence zombie procesu úmyslná nebo dokonce žádoucí. Poté, co dítě ukončí provádění, možná bude muset rodič spustit další instanci stejného programu později. Pokud nebyl zombie z tabulky procesu odstraněn, nové dítě nebude přiřazeno stejné identifikaci (ID) jako staré dítě. Některé programy mohou těžit z tohoto druhu diferenciace nebo dokonce vyžadují.
Pokud rodičovský proces neprovedl příkaz čekání, aby sklízel zombie, za které je zodpovědný, může být možné problém vynutit. To se obvykle provádí prostřednictvím příkazu KILL a odeslání sigchldsignál k nadřazenému procesu. Pokud vše funguje správně, měl by nadřazený proces, který přijímá tento signál, sklízet jeho zombie děti, aby bylo možné znovu použít jejich ID a pozice procesní tabulky.
Za určitých okolností může rodičovský proces ignorovat signál Sigchld. Pokud k tomu dojde a operátor si stále přeje, aby byla tabulka procesu vyčištěna, může být rodičovský proces zabit. Jakékoli zombie, které vytvořil mateřský proces, pak budou přiřazeny jako děti k procesu INIT. Vzhledem k tomu, že Initicky iniciuje příkaz čekání u svých dětí, budou všechny zombie, za které je zodpovědné, nakonec z procesní tabulky odstraněny.