Sobes.tech
Junior — Middle

Kuris iš SIGTERM ar SIGKILL signalų gali sukelti sistemoje zombio proceso atsiradimą?

sobes.tech AI

Atsakymas iš AI

SIGTERM signalas gali sukelti zombio proceso atsiradimą, jei tėvinis procesas tinkamai neapdoroja vaiko proceso pabaigos ir nekviečia wait() resursų atlaisvinimui.

SIGKILL (kuriame klausime yra rašybos klaida kaip SIGSKILL) signalas nedelsiant užbaigia procesą be galimybės pagauti ar apdoroti, tačiau branduolys automatiškai išvalo visus proceso išteklius, ir zombis nelieka.

Todėl zombio procesai atsiranda, kai procesas baigiasi (pavyzdžiui, po SIGTERM), bet tėvinis procesas nekviečia wait() norėdamas gauti užbaigimo būseną. SIGKILL nesukelia zombio, nes procesas priverstinai užbaigiamas ir nedelsiant pašalinamas iš procesų lentelės.