Qaysi holat ota-ona jarayonidan olishi kerakki, zombie bo'lsin?
sobes.tech AI
AIdan javob
Protsess zombi yoki "hayalet protsess" bo'lib, u o'z bajarilishini tugatganda ( EXIT_ZOMBIE holatiga o'tganda), ammo uning yozuvi protsesslar jadvalida hali ham mavjud bo'lib, uning ota protsessi wait() yoki waitpid() tizim chaqiruvi orqali uning tugash holatini o'qishini kutmoqda. Bu vaqtgacha, u minimal resurslarni (deyarli faqat protsesslar jadvalidagi yozuvni) egallaydi, ammo unga bog'liq resurslarni to'liq bo'shatmaydi.
Protsesslar jadvalida, bunday protsess odatda <defunct> indikator bilan ko'rsatiladi.
# ps komandasi chiqishi, zombi protsessni ko'rsatadi
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]
...
Zombi protsessning yo'qolishi uchun, ota protsess wait() yoki waitpid() chaqirishi kerak. Agar ota protsess o'z zombi bolalarining holatini o'qishdan oldin tugasa, bu bolalar init protsessining (ID 1) bolalari bo'lib qoladi va init avtomatik ravishda wait() chaqiradi, shuning uchun zombi protsesslar tozalanadi.
Shunday qilib, protsess ota tomonidan qabul qiladigan asosiy holat, u zombi bo'lish uchun, tugash holati bo'lib, ota hali wait* chaqiruvlari orqali uni ishlov bermagan bo'ladi.