it-swarm.asia

Ebeveyn ile <defunct> süreci öldürmek için nasıl 1

Bacula'yı bir RedHat kutusunda çalıştırıyorum. Depolama arka plan programı bacula-sd zaman zaman çalışmayı durdurur ve <defunct>.

[[email protected] ~]# ps -ef | grep defunct | more
root      4801 29261  0 09:25 pts/5    00:00:00 grep defunct
root      5825     1  0 Oct18 ?        00:00:00 [bacula-sd] <defunct>

Sorum şu: Bu süreci nasıl öldürebilirim? Ebeveyni 1, init olduğunu bildiğim kadarıyla ve init sürecini öldürmek istemem, olur mu?

Bu işlemi 'normalde' öldürmek işe yaramıyor:

[[email protected] ~]# kill -0 5825
[[email protected] ~]# kill -9 5825

Yardım büyük beğeni topluyor!

Düzenle: çalışıyor

[[email protected] ~]# lsof -p 5825

aşağıdaki çıktıyı üretir:

COMMAND    PID USER   FD   TYPE  DEVICE     SIZE    NODE NAME
bacula-sd 5825 root  cwd    DIR   253,0     4096 3801089 /root
bacula-sd 5825 root  rtd    DIR   253,0     4096       2 /
bacula-sd 5825 root  txt    REG   253,0  2110599  368004 /usr/local/sbin/bacula-sd
bacula-sd 5825 root  mem    REG   253,0    75284  389867 /usr/lib/libz.so.1.2.3
bacula-sd 5825 root  mem    REG   253,0    46680 3604521 /lib/libnss_files-2.5.so
bacula-sd 5825 root  mem    REG   253,0   936908  369115 /usr/lib/libstdc++.so.6.0.8
bacula-sd 5825 root  mem    REG   253,0   125736 3606807 /lib/ld-2.5.so
bacula-sd 5825 root  mem    REG   253,0  1602128 3606885 /lib/libc-2.5.so
bacula-sd 5825 root  mem    REG   253,0   208352 3606892 /lib/libm-2.5.so
bacula-sd 5825 root  mem    REG   253,0   125744 3606887 /lib/libpthread-2.5.so
bacula-sd 5825 root  mem    REG   253,0    25940 3604573 /lib/libacl.so.1.1.0
bacula-sd 5825 root  mem    REG   253,0    15972 3604535 /lib/libattr.so.1.1.0
bacula-sd 5825 root  mem    REG   253,0    46548 3606908 /lib/libgcc_s-4.1.2-20080102.so.1
bacula-sd 5825 root  mem    REG   253,0 56422480  366368 /usr/lib/locale/locale-archive
bacula-sd 5825 root    0r   CHR     1,3             1545 /dev/null
bacula-sd 5825 root    1r   CHR     1,3             1545 /dev/null
bacula-sd 5825 root    2r   CHR     1,3             1545 /dev/null
bacula-sd 5825 root    3u   CHR   9,128             6469 /dev/nst0
bacula-sd 5825 root    4u  IPv4 1023380              TCP backup:bacula-sd (LISTEN)
bacula-sd 5825 root    5u  IPv4 2693268              TCP backup:bacula-sd->backup:53957 (CLOSE_WAIT)
bacula-sd 5825 root    7u  IPv4 3248683              TCP backup:bacula-sd->backup:57629 (CLOSE_WAIT)
bacula-sd 5825 root    8u  IPv4 3250966              TCP backup:bacula-sd->backup:37650 (CLOSE_WAIT)
bacula-sd 5825 root    9u  IPv4 3253908              TCP backup:bacula-sd->backup:37671 (CLOSE_WAIT)
17
andreas-h

Zombi/defunct sürecini kaldırmanın tek yolu ebeveynleri öldürmek olacaktır. Ebeveyn init olduğundan (pid 1), bu da sisteminizi devirir.

Bu sizi iki seçenekle bırakıyor.

  • İşlem tablosunu el ile değiştirin, örn. kukla bir süreç oluşturun, geçersiz süreci kukla bir çocuk olarak bağlayın, sonra onları öldürün. Oldukça tehlikeli ve semaforlar ve dosya tanıtıcıları gibi diğer işlem kaynaklarını el ile temizlemeniz gerekebilir.
  • Sistemi yeniden başlatın.

İkincisi ile giderdim.

18
Roy

Çekirdek paniği olup olmadığını kontrol edin,

# dmesg |tail

Sürecin henüz geri dönmeyen bazı sistem çağrıları için çekirdek modunda olduğu "D" Unkillable uyku durumunda olup olmadığını kontrol edin (çekirdek oops veya başka bir nedenle) http://www.nabble.com/What -causes-bir-ölümsüz-işlem - td20645581.html

3
Prasanna

Bir zombi ana öğesi olarak başlatırsa, init düzgün çalışmayı durdurdu. Init'in rollerinden biri zombi temizlemektir. Eğer yapmazsa, başkası yapmaz. Yani tek çözüm yeniden başlatmak. İnit bozulursa, yeniden başlatma başarısız olabilir, bu yüzden önemli hizmetleri kapatabilirim, dosya sistemini senkronize edip güç düğmesine basardım.

3
MarkR

İnit'i yeniden başlatmayı deneyebilirsiniz:

 # telinit u

Aksi takdirde çok fazla endişelenmezdim. Çalışmıyor ve kaynak almıyor ve sadece orada, böylece çekirdek bunu hatırlıyor.

3
David Pashley

Paniği aşağıda tutalım, olur mu? Bir "geçersiz" veya "zombi" işlemi bir süreç değildir. Kaydedilmiş bir çıkış koduyla işlem tablosundaki bir girdidir. Bu nedenle, bir zombi kaynak tutmaz, CPU döngüleri almaz ve bellek kullanmaz, çünkü bu bir süreç değildir. Tüm tuhaf ve kaşıntılı zombi süreçlerini "öldürmeye" çalışmayın. Tıpkı isimleri gibi, zaten öldükleri için öldürülemezler. Ancak beyin yiyen türden farklı olarak, kesinlikle kimseye zarar vermezler ve diğer süreçleri ısırmazlar.

Zombi süreçlerinin beynini yemesine izin verme. Sadece görmezden gel.

2
Teddy

Artık yetim bir sürecin var gibi görünüyor. Bildiğim kadarıyla bunları öldürmenin tek yolu kutuyu yeniden başlatmak olacaktır. Bu zaman zaman ESX sunucuları (başlık altında linux olan) oldu ve bir Host yeniden başlatma (VMware desteği) düzeltmedir.

Ben bir Windows adamıyım, bu yüzden ne için olduğunu al.

0
mrdenny