Sobes.tech
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.