Neden 'kill -9' / SIGKILL kullanmamalıyım?


14

Bu soruyu yolladım çünkü doğrudan cevap bulamadığına şaşırdım; Bu bir kopya ise özür dilerim - baktım!

Bunu duydum kill -9ya kill -SIGKILLda kötü, ama nedenini anlamıyorum. Yapmamam gerekiyorsa bir süreci öldürmek için kill -9ne yapmalıyım ?


2
Sorunun dayanağı yanlış. SIGKILL sadece bir araçtır. Bazı durumlarda önerilir ve diğer durumlarda önerilmez (diğer tüm araçlar gibi).
kubanczyk

@kubanczyk elbette, ama çoğu zaman yanlış uygulanan bir araçtır ve amacını anlamadan kullanılır. Ne diyor birçok konuları gördüm " Sadece kill -9o ", OP diyor " Büyük, çalıştı! Ben! Şu andan itibaren o hatırlayacağım " ve B uyarmak geliyor " beklemek kill -9tehlikelidir! " Sadece aslında sonra.
dimo414

Yanıtlar:


15

SIGKILLHalıyı koşu işleminizden çıkarır ve derhal sonlandırır. Çok basit programlar için bu iyidir; ancak pratikte çok az "basit" program vardır.

Kapakların altında, önemsiz görünen programlar bile finally, kaynak saplarını kapatma, geçici dosyaları silme ve bellekten diske. Bir programın ne zaman böyle bir şey yaptığını tahmin edemezsiniz.

Eğer şanslıysanız, bir şey gönderirseniz yanlış bir şey fark etmeyeceksiniz SIGKILL, ancak sonsuza kadar şanslı olamazsınız ve kaybedilen şeyi kurtarmak için çok geç olana kadar hiçbir şeyin yanlış gittiğini bilemeyebilirsiniz.

Neredeyse hiç bir şey göndermeniz gerekmemeli SIGKILLve bunu yapmadan önce alternatiflerinizi tükettiğinizden emin olmalısınız. Çoğu durumda yeniden başlatma (nihayetinde SIGKILLhatalı davranış programlarına gönderir) SIGKILLkendiniz manuel olarak göndermekten daha güvenlidir . Muhtemelen bir yandan (ve muhtemelen kendi yapımımın) kaç kez göndermem gerektiğine güvenebilirim SIGKILL.

Genel olarak konuşursak, bir işleme ne yaptığını durdurup çıkmasını bildirmek için Ctrl+ C(ön plan işlemini a gönderir SIGINT) veya SIGTERM("sonlandır" öğesinde olduğu gibi) kullanabilirsiniz.

Bazı okumalar:

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.