Sobes.tech
Middle

Zombi işlemi nasıl sonlandırılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir zombie süreç, yürütmesini tamamlamış olan, ancak sistemin süreç tablosunda yer almaya devam eden bir süreçtir, çünkü ebeveyn süreci henüz dönüş kodunu wait() sistem çağrısı ile okumamıştır.

Bir zombie süreci sonlandırmak için öncelikle ebeveyn sürecini sonlandırmak gerekir. Ebeveyn süreç sona erdiğinde, zombie süreç init (veya modern karşılığı, örneğin systemd) tarafından benimsenir, bu süreç gerekli wait() sistem çağrısını gerçekleştirir ve zombie'yi süreç tablosundan kaldırır.

Zombie süreci sonlandırma adımları:

  1. Zombie sürecin PPID'sini (ebeveyn süreç kimliği) belirleyin.

    # Zombie süreçleri ve onların PPID'lerini bulun
    ps aux | awk '{ print $8, $2, $4 }' | grep Z
    

    Çıktı yaklaşık olarak şu şekilde olur: Z 1234 5678, burada 1234 zombie sürecin PID'si, 5678 ise ebeveyn sürecin PPID'sidir.

  2. Ebeveyn süreci sonlandırın. Önceki adımda alınan ebeveyn sürecin PID'sini kullanın.

    # Ebeveyn süreci zorla sonlandırın
    kill -9 <PPID_ebeveyn_süreç>
    

    Normal SIGTERM sinyali işe yaramazsa, garantili sonlandırmak için SIGKILL (-9) sinyalini kullanın.

Ebeveyn süreç sona erdikten sonra, sistem otomatik olarak zombie süreci kaldıracaktır. Nadir durumlarda, zombie süreçlerle ilgili sorun, çekirdek derin bir sorun nedeniyle oluşuyorsa, sunucunun yeniden başlatılması gerekebilir.