Junior — Middle
Cum se poate încheia sau forța oprirea unui proces zombie în sistemul de operare?
sobes.tech AI
Răspuns de la AI
Un proces zombie este un proces care s-a încheiat, dar procesul său părinte nu a citit încă statutul de finalizare (nu a apelat wait). În sistem, ocupă o intrare în tabelul de procese, dar nu utilizează resurse CPU.
Nu se poate termina forțat un proces zombie direct, deoarece acesta este deja terminat. Pentru a scăpa de zombie, trebuie:
- Să închei sau să repornești procesul părinte care nu a apelat wait. În acest caz, init (PID 1) va deveni noul părinte al zombie-ului și va apela automat wait, eliminându-l.
- Să trimiți semnalul SIGCHLD procesului părinte pentru ca acesta să proceseze statutul de finalizare al proceselor fiice.
Exemplu de comandă pentru trimiterea semnalului către părinte:
kill -s SIGCHLD <PID_părinte>
Dacă părinte nu răspunde, îl poți termina:
kill -9 <PID_părinte>
După aceea, init va prelua și va elimina zombie-ul.