İmtiyazlı bir süreç nedir ve neden öldürülemez?

134

Chrome tarayıcısı yanıt vermiyordu ve onu öldürmeye çalıştım, ancak kaybolan yerine işlemin% co_de değeri sağdaydı ve öldürülmedi:

Bir işlem için <defunct> nedir ve neden onu öldürmez?

    
sordu Eduard Florinescu 15.10.2012 13:27

2 cevap

124

Çıktınızdan, sürecin ya görevini tamamladığı ya da bozulduğu ya da öldüğü anlamına gelen bir "kusurlu" görüyoruz, ancak çocuk süreçleri hala çalışıyor ya da bu ebeveyn süreci çocuk sürecini izliyor. Bu tür bir süreci öldürmek için, -9 PID'yi öldürmeyin. Onları bu komutla öldürmeyi deneyebilirsiniz, ancak bunu tekrar tekrar gösterecektir.

Bu geçersiz işlemin üst sürecinin hangisi olduğunu belirleyin ve onu öldürün. Bunu bilmek için şu komutu çalıştırın:

ps -ef | grep defunct

UID          PID     PPID       C    STIME      TTY          TIME              CMD
1000       637      27872      0   Oct12      ?        00:00:04 [chrome] <defunct>
1000      1808      1777       0    Oct04     ?        00:00:00 [zeitgeist-datah] <defunct>

Ardından kill -9 637 27872 , sonra geçersiz işlemin ps -ef | grep defunct gitmiş olduğunu doğrulayın.

    
verilen cevap Paddington 15.10.2012 13:47
44

Manüel sayfa ps (1) şunları söylüyor: :

  

<defunct> olarak işaretlenen işlemler ölü süreçlerdir ( "zombiler" olarak adlandırılır)   Bu, ebeveynlerinin onları doğru şekilde imha etmediği için kalır.   Bu işlemler, ana işlemle init(8) tarafından yok edilecektir.   çıkar.

Onu öldüremezsin çünkü zaten öldü. Tek kalan şey işlem tablosunda bir girişdir :

  

Unix ve Unix benzeri bilgisayar işletim sistemlerinde, bir zombi işlemi veya   geçersiz işlem, yürütmeyi tamamlamış ancak yine de bir işlemdir   işlem tablosunda bir girişi vardır. Bu girdiye izin vermek için hala gerekli   Ebeveyn süreci, çocuğun çıkış durumunu okumalıdır.

Birçoğu olmadıkça bu gibi işlemlerin yapılmasına hiçbir zararı yoktur. Zombie nihayetinde ebeveyn tarafından yeniden yaratılır ( wait(2) ’yi çağırarak). Orijinal ebeveyn, kendi çıkışından önce bulamadıysa, init işlemi ( pid == 1 ) bunu daha sonra yapar. Zombi Süreci sadece:

  

Sonlandırılmış ve çıkış durumu silindiğinde silinmiş bir işlemdir.   bu süreci bekleyen başka bir sürece bildirildi.   sonlandırmak için.

    
verilen cevap jfs 27.02.2014 21:53

Etiketlerdeki diğer soruları oku