Öldürmeye tepki vermeyen süreçler nasıl öldürülür -9


9

Benim SGI Altix 450 çalışan SLES 10.1 çalışan görünüşte çalışmayı durduruyorum (yani günlükleri saatlerce daha fazla çıkış sağlamak değil). Bu noktada, yeniden başlayabilmem için rahatsız edici süreci öldürmek istiyorum. Üst işlemin (R) durumunda olduğunu gösterir. Öldürmeye çalıştığımda hiçbir şey olmuyor. Kill -9 kullandığımda bile hala devam ediyor. Bu durumda makineyi yeniden başlatmak dışında ne yapabilirim?


2
Kesinlikle aynı işlem kimliği mi? Süreci öldürdüğünüzden değil ve bazı arka plan programı aynı adda bir işlemi yeniden başlatıyor mu?
CK.

Yanıtlar:


9

Süreç öldürülmüş olabilir ancak ebeveynin geri dönüş değerini toplamasını beklemek mümkündür. Bu durumda öldürüldükten sonra 'R' değil, 'Z' durumunda olacaktı. Bu durumda ppid, pskomut kullanarak süreci bulmalı ve üst süreci de öldürmelisiniz (Gerçekten herhangi bir soruna neden olmayacağından eminseniz).

Diğer durum, bir nedenden dolayı, tty gibi öldürüldükten sonra sürecin yeniden başlaması olabilir. Bu durumda -9'u her öldürdüğünüzde işlem kimliği değişmelidir. Her öldürmeye çalıştığınızda işlem kimliğinin değişip değişmediğine bakın.


Ben ebeveyn sürecini öldürmeye çalıştığımı düşünüyorum. (R) durumunda olan ana süreçtir. pstree bunu onaylar. Alt süreçlerin hepsi (Z) zombi halindedir. PPid statik kalır, bu yüzden basitçe yeniden başlatıldığına inanmıyorum.
Jared Brown

Üst işlemi (ve üst öğesi işlemi vb.) Öldürürseniz, init 'Z' durumunda olan ve dönüş değerlerini toplayan alt süreçlerin üst öğesi olur. Dolayısıyla, ebeveyni geri dönüş değerini almayan 'Z' çocukları çıkarmanın en iyi yolu, initin ölü çocuk süreçlerinin ebeveyni olması için ebeveyni de öldürmektir.
Saurabh Barjatiya

Yaşadığım mesele bu. Ana işleme kill yoluyla bir -9 sinyali göndermek sonlandırmaz.
Jared Brown

1
Ebeveyne SIGHUP göndermek bazen yeterlidir. Ebeveynleri her zaman öldürmek zorunda değilsin.
Thomas

2
Üzgünüm, SIGCHLD. (sabah çok erken)
Thomas

2

Süreç bazı sistem kaynaklarını bekliyor olabilir, belki NFS? bu 'bırakmasına' izin vermiyor. Bunun ötesinde bazı çözümler duymak isterim ...

kutuyu yeniden başlatın veya sürecin oturmasına izin verin.

Daha fazla işlemci tüketmesini önlemek için işlemi kill -STOP {PID} üzerinden 'DURDURABİLİRSİNİZ diye merak ediyorum.

Yeniden başlatma işlemi, başka bir durdurulmuş işlem otururken bile mümkün olmalıdır, ancak diğer işlem tarafından kullanılmakta olan bir liste bağlantı noktası veya paylaşılan bellek segmenti gerektirebilir.


1
NFS'de bekleyen bir işlem veya bazı G / Ç işlevlerinin tamamlanması (D) durumunda olmaz mı? Bu işlemler bir (R) durumundadır.
Jared Brown

lsBir s3fs montajında ​​komutu yaptığımda bazen tam olarak başıma gelen budur. lsSüreç bile öldürmez kill -9Birlikte çıkart zorla kadarumount -l
Marco Marsala

0

Henüz dmesg'i kontrol ettin mi? Bunu bir çekirdek panikinden sonra gördüm; iyileşmenin tek yolu yeniden başlatmak (tercihen yakında) - ve sonra yamalı bir çekirdek elde etmektir.

Normal unkillable süreçleri R değil D durumunda olacaktır.


D durumu hakkında yeniden başlatma dışında zorlu süreçlerle ilgili bir şey yapılabilir mi? ppid = 1
Prof. Moriarty
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.