Sobes.tech
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.