Linux: “Zombi” Süreçler Nasıl Öldürülür ?

Linux
Spread the love

Zombilere Ölüm!

“Geçersiz” veya “ölü” süreç olarak da bilinir. Basit bir deyişle, bir “zombi süreci”, ölü olan ancak sistemin işlem tablosunda bulunan bir süreçtir. (Şöyle ki, normal olarak, işini/yürütmesini tamamladıktan sonra işlem tablosundan temizlenmesi gerekirdi, ancak bazı nedenlerden dolayı üst süreç, yürütüldükten sonra düzgün bir şekilde temizlemedi.)

Linux dünyasında, bir süreç yürütmeyi tamamladıktan sonra üst süreci bilgilendirir. Daha sonra üst süreç, süreci işlem tablosundan kaldırır. Bu adımda, üst süreç alt süreçten süreç durumunu okuyamazsa(tamamlanmış süreç), süreci bellekten kaldıramaz ve dolayısıyla ölü olan süreç, süreç tablosunda var olmaya devam eder. Dolayısıyla, bu sürece “Zombi” denir!

Bir Zombi sürecini öldürmek için önce onu tanımlamamız gerekir. Zombi süreçlerini bulmak için aşağıdaki komut kullanılabilir:

Komutun bize vereceği çıktıda STAT sütunundaki Z ve/veya çıktının son sütunundaki(COMMAND) [defunct] bir Zombi sürecini belirtir.

Şimdi… Teknik olarak bir Zombi’yi öldüremezsiniz çünkü zaten ölmüştür! Yapılabilecek şey, alt (ölü) sürecin durumunu okumayı yeniden deneyebilmesi ve sonunda süreç tablosundan temizleyebilmesi için üst süreci açıkça bilgilendirmektir. Bu, üst sürece bir SIGCHLD sinyali gönderilerek yapılabilir. Üst süreç kimliğini (PID) bulmak için aşağıdaki komut kullanılabilir:

Zombie’nin üst süreç kimliğine sahip olduğunuzda, üst işleme SIGCHLD sinyali göndermek için aşağıdaki komutu kullanabilirsiniz:

Bununla birlikte, bu da Zombi süreci temizlemeye yardımcı olmazsa, ana süreci öldürmeniz veya yeniden başlatmanız gerekir. Yine Zombi işlemlerinde sistemde sıkıntıya neden olan büyük bir artış olması durumunda, başka bir seçeneğiniz olmayacaktır. Aşağıdaki komut, üst süreci sonlandırmak için kullanılabilir:

Bir üst süreci sonlandırmanın tüm alt süreçleri etkileyeceğini unutmayın. Birkaç yalancı zombi işlemi çok fazla CPU/Bellek tüketmiyorsa, sistemi yeniden başlatmak daha akıllıca olacaktır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir