Sobes.tech
Middle

Процесс ата-энесинен кайсы абалдуу болушу керек, зомби болуу үчүн?

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* чакыруулары аркылуу иштеткен эмес.