Zombi süreci nedir ve nasıl öldürürüm?


Yanıtlar:


17

Aman Tanrım! Hayır hayır hayır. Kill -9 kullanmayın.

Sürece temiz bir şekilde şans vermez:

  1. soket bağlantılarını kapatın

  2. geçici dosyaları temizle

  3. çocuklarına gittiğini söyleyin

  4. terminal özelliklerini sıfırlayın, vb. vb.

Genel olarak, 15 gönderin ve bir veya iki saniye bekleyin ve bu işe yaramazsa, 2 gönderin ve işe yaramazsa, 1 gönderin. Bu olmazsa, BINARY'yi ÇIKARIN çünkü program kötü davranıyor!

Kill -9 kullanmayın. Saksıyı toparlamak için biçerdöverleri dışarı çıkarmayın.


13
öldür -9 zombileri öldürmez. Ebeveynlerini öldürmek zorundasın, pstree'ye bak.
LapTop006

3
@ LapTop006: Bu durumda daha çok vampir gibiler; işgali durdurmak için kafa vampir öldürmek.
amfetamachine

2
Bu cevap hemen hemen her şekilde yanlıştır. İşlem tamamlandı; zaten bağlantılarını kapattı, geçici dosyaları temizledi vb. Çocuk ikiliyi çıkarmayın - kötü davranmıyor. Bunun anlamı, ebeveynin henüz çocuğu için uygun bir cenaze töreni yapmamış olmasıdır.
Ken Williams

19

Zombi süreci (aslında şimdi denir <defunct>) aslında bir süreç değil. Bu sadece işlem tablosuna girildiğinden, ana işlem wait()sistem çağrısı yapabilir .

Onlar için endişelenmemelisin. Herhangi bir kaynakları işgal etmiyorlar wait(), ebeveynlerinin kendisi öldüğü zaman aradıkları zaman kaybolacaklar .



9

Ancak kabul edilmiş bir cevap var: Zombi işlemini öldürebilirsin. Hata ayıklayıcısını üst işleme ekleyin ve waitpid işlevini çağırın. Örneğin: - ebeveynin PID = 100 olduğunu, zombi işleminin PID = 200 olduğunu varsayalım.

$ gdb -p 100
(gdb) call waitpid(200, 0, 0)
(gdb) quit

İlginç. Bunu deneyeceğim.
ewwhite

8

Bir zombi işleminin, işlem ağacına giriş dışında, kendisine tahsis edilmiş hiçbir kaynağı yoktur. Bu süreç tamamlamalar, ancak üst süreç henüz yok ne olur hasat (yani, bunu waitüzerine ed).

Ebeveynine bir SIGCHLD ( kill -20) göndererek, ebeveyni bunu yapmayı deneyebilir ve zorlayabilirsiniz , ancak ebeveyin onurlandırılacağının garantisi yoktur.

Bunları sıklıkla kısa süre boyunca göreceksiniz (örneğin, üstteki işlem ağacını görüntülerken) - bu normaldir; Bir çocuk sürecinin tamamlandığı zaman ile ebeveyn bunun arasında yapılan anket arasındaki zaman diliminde - çocuk süreci bir zombi olarak görünecektir.

Ancak sürekli olarak varolan zombi süreçlerini görüyorsanız - ki bu normal değildir - yine de endişelenmeye gerek yoktur - ölü bir işleme tahsis edilmiş kaynak olmadığı için - bu genellikle uygulamanın berbat geliştiriciler tarafından yetersiz yazıldığı anlamına gelir.

Zombi işlemlerinden endişe etmeniz gereken tek zaman, örneğin çok fazla ve çok gördüğünüz zaman, örneğin yukarıda belirtilen aynı berbat uygulama yük altındaysa.

Çalıştığım yerde berbat geliştiriciler var ve bu yüzden bu tür meselelerle uğraşma ve bunu yaparken her türlü işe yaramaz şeyleri öğrenme ayrıcalığına sahibim. Aslında - ekibim sık sık röportajlarda kötü niyetli geliştiriciler tarafından yazılan berbat kabuk komut dosyalarını kullanmak için başvuruyor - eğer aday senaryo gerçekten berbat olduğunu seçebiliyorsa ve bize neden berbat olduğunu söylese, kapının önünde iyi bir ayak olduğunu söyleyebilir.


0

Sanal av tüfeğine gelince ...

$ shoot <pid>
#! / Bin / sh
kurban = `ps -e -o pid, ppid | egrep "^ \ s * $ 1 \ b" | awk '{print $ 2}' `
victim \ _name = `ps-e -o pid, cmd | egrep "^ \ s * $ {victim} \ b" | kafa -n 1 | awk '{print $ 2}' `
#kill $ {victim}
eko "Öldürülen $ {victim_name}."

Ve unutma: her zaman onları kafasından vur.


Üzgünüm ama kayıt için, bu betiğin "victim_name" yazım hatası var ve 1 $ 'da verilen PID’nin ebeveyni öldürülecek, her durumda PID’nin tek zombi mi, yoksa bazı kardeşleri varsa babayı öldürür ve onunla bütün aile yok olur.
Marc Riera

-1

Bir zombi işlemi, yürütmeyi tamamlayan, ancak yine de işlem tablosunda listelenen bir işlemdir.

kill -9 [ana işlem_adı] , aşırı önyargıyla onu yere koyacaktır.


öldür -9 bir zombi sürecini öldürmez - zombiler denmesinin bir nedeni budur. Bir zombi "süreci", geri dönüş kodu bir üst işlem tarafından elde edilinceye kadar kaybolmaz.
Mei,

3
Hayır, öldürmek -9 üzerinde VELİ ebeveyn öldürecek, 's ebeveyn, init yapma OLACAK çocuğun dönüş kodunu biçmek.
Alan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.