Ի՞նչ կարգավիճակ պետք է ստանա գործընթացը ծնողական գործընթացից, որպեսզի դառնա զոմբի։
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* կանչերով։