Junior — Middle
Ako možno ukončiť alebo nútene zastaviť zombie proces v operačnom systéme?
sobes.tech AI
Odpoveď od AI
Zombi proces je proces, ktorý sa ukončil, ale jeho rodičovský proces ešte neprečítal stav ukončenia (nezavolal wait). V systéme zaberá záznam v tabuľke procesov, ale nevyužíva CPU zdroje.
Priame ukončenie zombi procesu nie je možné, pretože je už ukončený. Aby ste sa ho zbavili, je potrebné:
- Ukončiť alebo reštartovať rodičovský proces, ktorý nezavolal wait. V takom prípade sa init (PID 1) stane novým rodičom zombi a automaticky zavolá wait, čím ho odstráni.
- Poslať signál SIGCHLD rodičovskému procesu, aby spracoval stav ukončenia detí.
Príklad príkazu na odoslanie signálu rodičovi:
kill -s SIGCHLD <PID_rodiča>
Ak rodič nereaguje, je možné ho ukončiť:
kill -9 <PID_rodiča>
Po tomto init prevezme a odstráni zombi proces.