Millist staatust peab protsess saama vanemprotsessilt, et saada zombieks?
sobes.tech AI
Vastus AI-lt
Protsess muutub zombie-ks või "vaimprotsessiks", kui ta lõpetab oma täitmise (läheb EXIT_ZOMBIE olekusse), kuid tema kirje protsesside tabelis on endiselt olemas, oodates, kuni tema vanemprotsess loeb tema lõpetamise staatuse süsteemikutsumise wait() või waitpid() kaudu. Selleks ajaks kasutab ta minimaalseid ressursse (peaaegu ainult kirjet protsesside tabelis), kuid ei vabasta täielikult sellega seotud ressursse.
Selline protsess on tavaliselt protsesside tabelis näidatud indikaatoriga <defunct>.
# ps käsu näide, mis näitab zombie-protsessi
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
...
someuser 1234 0.0 0.0 0 0 pts/0 Z+ 10:00 0:00 [defunct_process]
...
Zombie-protsessi kadumiseks peab vanemprotsess kutsuma wait() või waitpid(). Kui vanemprotsess lõpetab enne, kui ta on lugenud oma zombie-laste staatust, muutuvad need lapsed init protsessi (ID 1) lastele, kes kutsub automaatselt wait() oma laste jaoks, eemaldades seega zombid.
Seega on peamine olek, mida protsess vanemprotsessilt saab, et saada zombie, lõpetamise olek, mida vanem veel ei ole töötlenud wait*-kutsumiste kaudu.