Процесс ата-энесинен кайсы абалдуу болушу керек, зомби болуу үчүн?
sobes.tech AI
AIден жооп
Процесс зомби же "жаны" процесс болуп саналат, ал иштөөдө аяктагандан кийин ( EXIT_ZOMBIE абалына өтүп), бирок анын жазуусу процесстер таблицасында дагы эле бар жана анын ата-эне процесси анын аяктоо абалын wait() же waitpid() системдик чакыруусу аркылуу окуганга чейин күтүп турат. Бул учурга чейин ал минимал ресурстарды (практикалык түрдө гана процесстер таблицасындагы жазуу) ээлейт, бирок анын менен байланышкан ресурстарды толугу менен бошотпойт.
Процесстер таблицасында мындай процесс көбүнчө <defunct> көрсөткүчү менен көрсөтүлөт.
# ps командасынын чыгышы, зомби процессти көрсөтүү
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]
...
Зомби процессти жок кылуу үчүн, ата-эне процесси wait() же waitpid() чакырышы керек. Эгер ата-эне процесси өз зомби балдарынын абалын окуганга чейин аяктап калса, бул балдар init процесси (ID 1) балдарына айланат, ал автоматтык түрдө wait() чакырып, зомби процесстерди тазалайт.
Ошентип, процесстин ата-энеден алган негизги абалы — ал зомби болуу үчүн, аяктоо абалы, аны дагы эле wait* чакыруулары аркылуу иштеткен эмес.