Zombi süreçleri

Bir girişi okumak ela Bir forumda birinin sistemi yavaş olduğundan yardım istediğini, bazı çözümlerin süreçlere odaklandığını hatırladım.

Linux'taki işlemlerin ana durumları şunlardır:
Uyku (S) : Yürütme sırasını bekleyen işlemler.
Koşu (R) : Çalışmakta olan işlemler.
Bekleniyor (D) : Bir Giriş / Çıkış işleminin tamamlanmasını bekleyen işlemler.
Zombi (Z) : Bitmiş ancak işlem tablosunda görünmeye devam eden işlemler. Programlama hatalarından kaynaklanabilirler ve yavaş veya soruna neden olan bir sistemin belirtisi olabilirler.

Bir Zombi süreci, onu yaratan üst süreçten hiçbir zaman sinyal almayan bir süreçtir, bir alt süreç, sinyalleri oluşturulan alt süreçlere göndermekten sorumlu olan üst süreç olarak bilinen daha yüksek seviyeli bir süreçte kökenine sahip olandır. yaşam sürelerinin sona erdiğini belirtmek için.

Programlama hatalarından kaynaklanabilirler ve yavaş veya soruna neden olan bir sistemin belirtisi olabilirler. Bu durum genellikle, bazı konfigürasyonların geliştirici tarafından tasarlanmaması nedeniyle ortaya çıkar.

Wikipedia'da şunları yapabilirsiniz: daha fazla oku bu süreçler hakkında.

En üstteki komutu yürüttüğümüzde, sistemde yürütülen işlemleri gerçek zamanlı olarak görebiliriz ve bu, zombi durumunda olup olmadığını gösterecektir, ancak hangisinin olduğunu göstermez.

süreç

Tüm işlemleri görmek için terminali yazın: ps yardımcıve sadece zombileri görmek için: ps -el | grep 'Z'o ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]'

alf @ Alf ~ $ ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]'

Z 1945

İşlemleri listelerken Z statüsünde görünüyorsa, bunun bir zombi olduğu anlamına gelir, bu da uygulamanın iyi çözülmediği veya hatalara sahip olduğu anlamına gelir, PID'sinin, benzer bir komut çalıştırılarak ortadan kaldırılabileceğini bilerek, terminalde, bu örnekte: 

alf @ Alf ~ $ öldür -9 1945

Çok sayıda zombi işleminiz olduğunda veya en azından birden fazla zombi işleminiz olduğunda, onları öldüren aşağıdaki komutu kullanabilirsiniz, sadece bunun için çalışır, zombi işlemleri olmadan çalıştırırsanız hiçbir şey olmaz:

alf @ Alf ~ $ sudo öldürme -HUP `ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]' | awk '{baskı $ 2}' ''

selamlar


Yorumunuzu bırakın

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

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   uygun dijo

    🙁

  2.   Oscar dijo

    Teşekkürler çok iyi katkı, periyodik kontroller yapmak için komutları kaydedeceğim.

  3.   alay etmek dijo

    Teşekkürler, güzel makale.

  4.   msx dijo

    Makalenizle ilgili birkaç açıklama:

    "Zombi süreci" terimi teknik olarak uygunsuzdur ve GNU / Linux ile az deneyime sahip olanlarımız, kendi içinde çalışan bir süreç olmadığı için onu kullanmaktan kaçınmalıdır, ancak bu yalnızca artık mevcut olmayan bir sürece atıftır. sistem ve kimliğini serbest bırakmadı.

    Bir "zombi süreci" aslında işlem tanımlayıcısının (işlem tanımlayıcısı) eşleme tablosundaki giriştir, bu nedenle, sistemin işlem tablosunu takip etmek için kullandığı birkaç bayt belleğin ötesinde kaynakları tüketmez.

    Hayalet (veya zombi) kayıt tanımlayıcılarında olabilecek tek sorun, çok hızlı ortaya çıktıklarında, teorik olarak tüm işlem tanımlayıcı ayırma tablosunu işgal edip sistemi yeni kayıtlar için yer bırakmadan kaplayabilmeleridir, bu nedenle yeni programları çalıştırmak potansiyel olarak imkansız olacaktır. - işlemlerini kaydeden - sonunda makineyi asan.

    Bununla birlikte, 32-bit sistemlerde süreçleri kaydetmek için 32767 alan (nadiren veya hiç kullanılmamış) ve 64-bit sistemdekinin iki katı olduğundan bu neredeyse imkansızdır.

    Ölü süreçler kötü bir şekilde kaldırılmış bir sistem çökmesini yapmanın tek yolu, süreç tanımlayıcısını doğru bir şekilde temizlemeden (yani, "zombi süreçleri" oluşturmadan) süreçleri oluşturmak ve onları hızlı bir şekilde öldürmektir, ancak birileri asmak isterse bununla yüzleşelim. sistem bundan çok daha doğrudan yollar var. sistemi tıkayan ve asan üstel bir şekilde yeni süreçler oluşturmaya başlamak; çatallı bomba ile bunu başarmanın yollarından biri:

    : () {: |: &};:

    /Etc/security/limits.conf dosyasını doğru bir şekilde yapılandırarak sistemi bir çatal bombasına nispeten dirençli hale getirebilirsiniz, ancak yeni süreç oluşturma olasılığını ne kadar sınırlarsak, daha az uygulama çalıştırabileceğimizi hesaba katmak gerekir. sistemimizde aynı anda .. Ancak, sistemleri üzerinde çok iyi bir kontrole sahip olmak isteyen tüm paranoyak sistem yöneticileri için geçerli bir araçtır!

    Bu makale geçersiz işlem tanımlayıcıları hakkında iyi bilgiler içermektedir:
    http://www.howtogeek.com/119815/htg-explains-what-is-a-zombie-process-on-linux/
    Ve bunda çatal bombasının nasıl çalıştığına dair net bir açıklama var: http://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

    Salu2

    1.    jotaele dijo

      msx: «" Zombi süreci "terimi teknik olarak uygunsuzdur ve GNU / Linux konusunda biraz tecrübesi olanlarımız onu kullanmaktan kaçınmalı…» Ha ha ha. Sadece gururundan daha büyük bir şey var: kötü zevkiniz. Hey, yaptığın şey kötü bir tada sahip, eğer ders vermek, fakülteden bir tane almak veya kendi bloğunu açmak ve istediğini yazmak istiyorsan, ama buraya gelip daireyi iyiye çevirmek için Alf gerçekten kötü bir tada sahip .

      1.    Ferdinand Rojas dijo

        Gerçek bana oldukça ilginç bir yorum gibi geldi. Gönderiden çok daha fazlası

  5.   Platonov dijo

    teşekkür ederim çok ilginç.

  6.   çürük87 dijo

    mükemmel makale teşekkürler

  7.   Alf dijo

    msx
    «" Zombi süreci "terimi teknik olarak uygunsuzdur ve GNU / Linux konusunda az deneyime sahip olanlarımız onu kullanmaktan kaçınmalıdır»

    Geliştiricilere bildirmemiz gerekecek çünkü göreceğiniz gibi zombi terimi de kullanılıyor, orada konsolda okudum.

    selamlar

  8.   Şehir dijo

    Tebrikler, çok güzel makale, onların PZ olduğuna dair her zaman şüphelerim vardı ama araştırmaya hiç zamanım olmadı, şimdi sayfaya gidiyorum ve cevaba rastladım, teşekkür ederim …….

  9.   Truko22 dijo

    Kontrol + kaçış sistemi ile KDE'de faaliyetler dışarı çıkıyor ve bu zombileri hızlıca öldürebiliyoruz.

  10.   Yağmur dijo

    Düzeltme, bu bir ZOMBIE, bir ZOMBIE süreci değil
    Zombie ingilizcedir
    İspanyolca Zombi

  11.   yunus dijo

    Lüks, teşekkürler!.

  12.   Roberto dijo

    İlk olarak, zombi süreci terimi tamamen doğru görünüyor. Ayrıca terim en az önemli olanıdır.
    Mesele şu ki, msx'in gösterdiği gibi ve aynı wikipedia (makaleyi okudum) zombi süreci gerçekten öldü.
    «Bir işlem bittiğinde, tüm belleği ve ilişkili kaynakları, diğer işlemler tarafından kullanılabilmeleri için başvurudan çıkarılır. Her neyse, işlem tablosundaki işlem girişi hala kalır »
    Yani, süreç artık sistem kaynaklarını kullanmıyor, bu nedenle sistem üzerindeki yük, msx tarafından açıklandığı gibi minimumdur.
    Bununla birlikte, sahip olduğu tek şey, işlem tablosundaki geçersiz bir giriştir ... ki, bunlardan binlercesi varsa, belki bir yük olur (sonuçta, işlemci işlem tablosunu okumalıdır ve bir kötü programlama uygulamalarını yansıtmanın yanı sıra (birisi kötü yapılmış uygulamalar yapıyor).
    Ancak kendi içinde gönderinin açıklaması o kadar doğru değildir ve doğru olanı msx tarafından verilen olacaktır.