Koji status proces mora da dobije od roditeljskog procesa da bi postao zombi?
sobes.tech АИ
Одговор од АИ
Proces postaje zombi ili "duh proces" kada završi svoje izvršavanje (pređe u stanje EXIT_ZOMBIE), ali zapis o njemu u tabeli procesa i dalje postoji, čekajući da njegov roditeljski proces pročita njegov status završetka pomoću sistemskog poziva wait() ili waitpid(). Do tog trenutka, zauzima minimalne resurse (praksa gotovo samo zapis u tabeli procesa), ali ne oslobađa potpuno povezane resurse.
U tabeli procesa, takav proces se obično prikazuje sa indikatorom <defunct>.
# Primer izlaza komande ps, koji prikazuje zombi proces
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]
...
Da bi zombi proces nestao, roditeljski proces mora pozvati wait() ili waitpid(). Ako roditeljski proces završi pre nego što pročita status svojih zombi-ćerki, one postaju deca procesa init (sa ID 1), koji automatski poziva wait() za svoju decu, čime se zombi procesi uklanjaju.
Dakle, glavni status koji proces dobija od roditeljskog procesa da bi postao zombi je status završetka, koji roditelj još nije obradio putem wait* poziva.