Kako završiti zombie proces?
sobes.tech АИ
Одговор од АИ
Proces zombi je proces koji je završio svoje izvršavanje, ali i dalje zauzima mesto u tabeli procesa sistema, jer njegov roditeljski proces još uvek nije pročitao kod povratka pomoću sistemskog poziva wait().
Da biste završili proces zombi, najpre je potrebno završiti njegov roditeljski proces. Kada roditeljski proces završi, zombi proces će biti usvojen od strane procesa init (ili njegovog modernog ekvivalenta, kao što je systemd), koji će izvršiti neophodni sistemski poziv wait() i ukloniti zombi iz tabele procesa.
Koraci za završavanje procesa zombi:
-
Odredite PPID (identifikator roditeljskog procesa) zombi procesa.
# Potraga za zombi procesima i njihovim PPID-ovima ps aux | awk '{ print $8, $2, $4 }' | grep ZIzlaz će biti otprilike ovako:
Z 1234 5678, gde je1234PID zombi procesa, a5678PPID roditeljskog procesa. -
Završite roditeljski proces. Koristite PID roditeljskog procesa dobijen u prethodnom koraku.
# Prisilno završavanje roditeljskog procesa kill -9 <PPID_roditeljskog_procesa>Koristite signal
SIGKILL(-9) da garantujete završetak roditeljskog procesa, ako običan signalSIGTERMne funkcioniše.
Nakon završetka roditeljskog procesa, sistem će automatski ukloniti zombi proces. U retkim slučajevima, ako je problem sa zombi procesima izazvan dubokim problemom jezgra operativnog sistema, može biti potrebno restartovati server.