Zombi süreci. Linux işletim sistemiyle ilgili bu ilginç ama korkutucu kelimeyi herkes duymadı. Kişisel bir bilgisayarda, zombi süreçleri sıradan bir kullanıcı için bir tehdit olmayabilir, ancak Linux sunucuları söz konusu olduğunda, bu işlemlerin tanımlanması ve durdurulması gerekir.

Bu tür işlemler, sisteminizin işlem tablosunda sorunlara neden olabilir ve dolayısıyla makinenizin düzgün çalışmasına müdahale edebilir. Bu nedenle, bu makalede, zombi süreçlerini ayrıntılı olarak ele alacağız ve bir Linux makinesinde zombi süreçlerini bulma ve öldürme konusunda kapsamlı bir kılavuz.

Zombi Süreçleri Nelerdir?

Ancak her şeyden önce, zombi süreçlerinin gerçekte ne olduğunu bilmeniz önemlidir. Bunlar, sistem işlem tablosunda yer kaplayan ölü ve geçersiz işlemlerden başka bir şey değildir. Bir süreç kontrol bloğu veya PCB, sisteminizde çalışan bireysel işlemlerle ilişkili ayrıntıları depolayan bir veri yapısıdır.

İşlem tablosu, işlem kimliği, PCB'ye bir bağlantı ve işlemle ilgili diğer yararlı bilgilerden oluşur. Zombi süreçlerinin kendi işlem kimlikleri ve bellek yönetimi bilgileri vardır. Linux işletim sisteminde sınırlı sayıda işlem kimliği olduğundan, diğer işlemler zombi süreci durana kadar PID'leri kullanamaz.

instagram viewer

Bir veya iki zombi işlemi bilgisayarınızda herhangi bir kesintiye veya performans sorununa neden olmasa da, çok sayıda bu tür süreçler, süreç tablosunu doldurarak sisteminizin iş akışına zarar verebilir ve kaynaklar.

Linux'ta Zombi Süreçlerine Ne Sebep Olur?

Bir zombi sürecinin altında yatan nedeni ayrıntılı olarak anlamak için, Linux'ta süreçlerin nasıl başladığını ve durduğunu öğrenmeniz gerekir. Linux işletim sistemi, bir bilgisayardaki tüm çalışan işlemleri ve arka plan yordamlarını izler. işlem tablosu şu anda makinenizde çalışan tüm işlemleri içeren yapıların bir listesidir.

İşlem tablosundaki her işlem girişi, süreç kontrol bloğu bu belirli sürecin. PCB, söz konusu işlemle ilgili ayrıntıları depolar. Bu ayrıntılar şunları içerir:

  1. İşlem durumu: İşlemin mevcut durumu
  2. İşlem numarası: Süreci tanımlamak için kullanılan benzersiz bir numara
  3. Program sayıcı: Bir sonraki talimatla ilgili bilgileri içerir
  4. Kayıtlar: İşlem tarafından kullanılan tüm CPU kayıtlarının listesi
  5. Dosya listesini aç: İşlem tarafından kullanılan dosyalar
  6. CPU planlama bilgileri: İşlem için ayrılan CPU zamanı ve kaynakları ile ilgili bilgileri içerir
  7. Bellek yönetimi bilgileri: İşlem tarafından kullanılan bellek miktarıyla ilgili ayrıntıları içerir
  8. I / O bilgileri: İşlem tarafından kullanılan giriş veya çıkış cihazlarının listesi

Linux, tüm işlemlerini açıklamak için aşağıdaki işlem durumlarını kullanır.

  • R: İşlem devam ediyor
  • S: Uyku süreci
  • D: Kesintisiz uyku süreci
  • T: Sonlandırılan süreç
  • Z: Zombi süreci

Bir işlem atanan görevi tamamladığında, işlem durumu şu şekilde ayarlanır: Zombi veya Z. Her sürecin, adı verilen bir işlev ailesini çağıran bir üst süreci vardır. Bekle() bir sürecin durum değişikliğini bekleyen. Örneğin, işlem durumu Koşu -e Zombi, Bekle() yöntem tetiklenecektir.

Bekle() yöntem genellikle o zombi işlemiyle ilgili işlem kontrol bloğunu siler ve ardından bu işlemin girişini işlem tablosundan kaldırır.

Ancak bazen, bir programın zayıf gelişimi nedeniyle, ana süreç, Bekle() işlevi. Ve sonuç olarak, sistem zombi sürecinin PCB'sini silmez. Bu belirli işlem için işlem tablosu girişi de bozulmadan kalır.

Bu, zombi sürecine sonsuz bir ömür verir. Sistem süreci öldüremediğinden, işlem girişi asla silinmez ve PID asla serbest bırakılmaz.

Daha fazla bilgi edin: Linux'ta Yanıt Vermeyen Programları Öldürmenin Yolları

Zombi Süreçleri Nasıl Bulunur?

Sisteminizdeki zombi süreçlerini kaldırmanın ilk adımı, hangi sürecin etkili olduğunu analiz etmektir. Zombi işlem durumu. Sistem bunları bellekten zaten kaldırdığı için bu işlemleri doğrudan öldüremezsiniz, ancak bunlarla ilişkili ana işlemi öldürebilirsiniz.

Öncelikle, sisteminizin işlem tablosunda zombi süreci olup olmadığını kontrol etmeniz gerekir. Bunu kullanarak kolayca yapabilirsiniz. üst komut. Basitçe terminalinizi açın ve şunu yazın:

üst

Buna benzer bir çıktı göreceksiniz. Terminal penceresinin üst kısmındaki zombi işlemlerinin sayısına dikkat edin. Çıktı sıfırsa, endişelenecek bir şey yok.

Bu zombi süreçleriyle ilgili bilgileri borulama yoluyla listeleyebilirsiniz. ps komutu ile egrep. Egrep, Linux'taki grep komutunun bir uzantısıdır ve tüm kalıpları genişletilmiş bir düzenli ifade dizesi olarak ele alır.

İlişkili: Yeni Başlayanlar İçin Python İle Normal İfadeler Kılavuzu

Tüm zombi işlemlerini listelemek için aşağıdaki komutu yazın:

ps aux | egrep "Z | feshedilmiş"

Yukarıda belirtilen komut, aşağıdakilerden birini içeren satırları arayacaktır. Z veya geçersiz ps komutu tarafından oluşturulan çıktıda. Çıktı, sisteminizde çalışan zombi işlemlerinin bir listesinden oluşur.

Kill Komutunu Kullanarak Zombi Süreçlerini Öldürmek

Artık hangi zombi işlemlerinin şu anda sistem kaynaklarınızı tükettiğini bildiğinize göre, bu süreçleri öldürmenin zamanı geldi.

Zombi süreçlerini öldürmenin en kolay yolu bilgisayarınızı yeniden başlatmak olsa da, bazen bu, özellikle bir sunucuyu yönetiyorsanız, uygun bir seçenek değildir.

Sunucunuzu kapatmadan zombi işlemlerini öldürmek için, herhangi bir zombi işleminin işlem kimliğini not edin. Bir önceki bölümden zombi sürecinin PID'sinin 18614 olduğunu görebiliyoruz. Ardından, üst işlemin kimliğini bulmak için bu PID'yi kullanın.

ps -o ppid = -p 18614

Çıktı:

18613

Üst işlem kimliğinin var olup olmadığını doğrulayın. ps komut.

ps -e | grep 18613

Artık ana sürecin varlığını onayladığımıza göre, onu öldürme zamanı. Geç -SIGKILL ile bayrak öldürmek aşağıdaki gibi komut:

sudo öldürme -SIGKILL 18613

Ana süreci öldürdüğünüzde, sistem zombi sürecini silecek ve otomatik olarak işlem tablosundan kaldıracaktır.

Süreçleri Linux'ta Verimli Bir Şekilde Yönetmek

Her sistem yöneticisi, bir Linux makinesinde çalışan izleme süreçlerine öncelik vermelidir. Zombi süreçleri sisteminize mutlaka zararlı olmasa da, çok sayıda varsa performans sorunlarına neden olabilirler.

Başlangıç ​​seviyesindeki bir Linux kullanıcısıysanız ve Linux işletim sisteminin süreçleri nasıl yönettiği hakkında hiçbir fikriniz yoksa, önce işlemlerin ne olduğunu öğrenmek, başlamak için iyi bir yerdir.

E-posta adresi
Linux'ta İşlem Nedir?

Süreç ve işleri anlamak, Linux ile başa çıkmanın önemli bir yönüdür. İşte bilmeniz gerekenler.

Sonrakini Oku

İlgili konular
  • Linux
  • Linux
  • İşleme
Yazar hakkında
Deepesh Sharma (45 Makale Yayınlandı)

Deepesh, MUO'nun Linux için Junior Düzenleyicisidir. 3 yıldan fazla bir süredir internette bilgilendirici içerik yazıyor. Boş zamanlarında yazmayı, müzik dinlemeyi ve gitar çalmayı sever.

Deepesh Sharma'dan Daha Fazla

Haber bültenimize abone ol

Teknoloji ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için haber bültenimize katılın!

Bir adım daha…!

Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.

.