Willy-nilly süreçlerini öldürmek düzgün bir hamle değil: veriler kaybolabilir, kötü tasarlanmış uygulamalar kendilerini yeniden yüklemeden düzeltilemeyecek kadar ince yollarla kırabilirler .. ama tamamen neyin güvenli olduğunu ve neyin güvenli olmadığını bilmeye bağlıdır. verilen durum. ve risk altında ne olurdu. Kullanıcı bir sürecin ne olduğu veya ne yapılması gerektiği ve ne gibi kısıtlamalar olduğu hakkında bir fikre sahip olmalı (disk IOPS, rss / swap) ve uzun süren bir işlemin ne kadar zaman alacağını tahmin edebilmelidir (bir dosya kopyası, mp3 reencoding, e-posta taşıma, yedekleme, [en sevdiğiniz zaman ayırıcı burada].)
Ayrıca, SIGKILL
bir ihaleye yollama , onu öldürme garantisi değildir. Bir sistemde sıkışmışsa veya zaten zombi ( Z
in ps
) ise, zombi olmaya devam edebilir. Bu genellikle ^ Z uzun süren bir işlemdir ve bg
denemeden önce unutmayı kill -9
gerektirir. Basit bir fg
stdin / stdout'u tekrar bağlar ve muhtemelen işlemin engeli kaldırır, ardından genellikle işlem sonlandırılır. Başka bir yerde veya başka bir çekirdek kilitlenme biçiminde sıkışmışsa, yalnızca bir yeniden başlatma işlemi kaldırabilir. ( SIGKILL
Çekirdek tarafından işlendikten sonra Zombie işlemleri çoktan ölmüştür (başka bir kullanıcı kodu kullanılmayacaktır), genellikle bitmeyen bir süreç için bir çekirdek nedeni vardır (işlemin bitmesini beklerken "engellenme" ye benzer).)
Ayrıca, bir süreci ve tüm çocuklarını öldürmek istiyorsanız , yalnızca PID'nin kendisini değilkill
, olumsuzlanan PID'yi arama alışkanlığına da sahip olun . Orada hiçbir garantisi var SIGHUP
, SIGPIPE
ya SIGINT
veya diğer sinyaller ondan sonra temizlik ve temizleme için disowned süreçler (melez hatırlayın?) Can sıkıcı bir demet sahip.
Bonus kötülük: kill -9 -1
biraz daha zararlıdır kill -9 1
(Atma, önemli olmayan bir VM'de ne olacağını görmek istemiyorsanız, root olarak yapmayın)