Arasında bir fark var mı
kill -9 212121
ve
kill 212121
Arasında bir fark var mı
kill -9 212121
ve
kill 212121
Yanıtlar:
Ubuntu kılavuz sayfası kill
, -9
anahtarın amacını açıklar (kuşkusuz dalgalı bir şekilde):
Name Num Action Description
KILL 9 exit cannot be blocked
İşte başka bir adam sayfası ne diyor.
Komut
kill
belirtilen sinyali belirtilen prosese veya proses grubuna gönderir. Sinyal belirtilmemişse,TERM
sinyal gönderilir.TERM
Sinyal bu sinyali tutmazsan süreçleri öldürecektir. Diğer işlemler için,KILL
(9
) sinyalini kullanmak gerekebilir , çünkü bu sinyal yakalanamaz.
Bu nedenle, -9
anahtarın kullanılması işlemin etkili bir şekilde öldürülmesini sağlar. Donmuş veya tepkisiz bir işlem basit bir TERM
sinyale cevap vermese bile , KILL
sinyal gönderildiğinde ölecektir .
Kill komutu tanımlanmış gönderecek sinyali verilen bir kimlik (PID) ile bir işleme:
kill -<signal> <pid>
Elbette sadece sahip olduğumuz süreçleri öldürebiliriz, oysa kök tüm süreçleri öldürebilir. Bilgi işlem sinyallerinin güzel bir özeti için Wikipedia'ya bakın .
kill
Gönderebileceğiniz sinyaller kılavuzda listelenmiştir . Sinyal isim veya numara ile gösterilebilir. Herhangi bir sinyal verilmezse, varsayılan sinyal 15 cevap. TERM
kullanıldı.
Bu nedenle, aşağıdaki üç komut da aynıdır:
kill -9 1234
kill -KILL 1234
kill -SIGKILL 1234
Aradaki fark SIGTERM
ve SIGKILL
bir uygulamanın sinyal üzerinde hareket edebilme şeklidir:
TERM
: Bir uygulama sonlandırılabilir, yani bir kapatma yordamını düzgün şekilde çalıştırabilir. KILL
: başvurular derhal durdurulur ve durdurulur (bu, bazı durumlarda varsayılan bir kazayı bildirmek için veri kaybına veya yükselmeye neden olabilir).Aşağıdakilerin hepsinin eşanlamlı olduğunu unutmayın:
kill -9 1234
kill -KILL 1234
kill -SIGKILL 1234
Sinyal işleme dünyasında, SIGKILL'in , işletim sistemi tarafından program tarafından ele alınan birkaç benzersiz sistemden biri olduğuna dikkat çekiyor . Çalıştırdığınızda kill -9
, uygulamaya kendisini sonlandırmasını söylemiyorsunuz, bunun yerine işletim sistemine programı çalıştırmayı bırakmasını söylüyorsunuz, programın ne yaptığı önemli değil.
SIGKILL gönderildikten sonra program derhal durdurulur. Program adına herhangi bir çekirdek çağrısı çalışıyorsa (örn. Dosya GÇ), bu çağrılar çağrıya bağlı olarak bitinceye kadar devam edebilir veya çalışmayabilir, ancak programın kendisi artık çalışmayacaktır. Not takip bir hata ayıklayıcı altında çalışan görevler veya görevleri farklı burada davranabilir.
Engellenemeyen diğer sinyal de benzer etkiye sahip olan SIGSTOP'tur , ancak programı dondurur ; SIGCONT'u daha sonra devam ettirmek için gönderebilirsiniz . Bu davranış tamamen işletim sistemi tarafından kontrol edilir ve program önceden bir bildirim almaz.
Diğer tüm sinyaller programa gönderilir; seçtiği halde onları idare edebilir veya sinyali yoksayarsa, varsayılan bir davranış izlenir.
İşte size bir işleme gönderirken kendinizi bulabileceğiniz birkaç yararlı sinyal:
kill
ve killall
. cat /etc/passwd | head -n1
, SIGPIPE cat
ilk satırın yazdırılmasından sonraki sürece gönderilir ve bu cat
da tüm dosyayı bitirmeden önce sonlanmasına neden olur .Tüm bu sinyaller kendi ayarlarında "doğal olarak" gerçekleşirken, istenen sonucu elde etmek için bir durumu taklit etmek için sinyali kullanabilirsiniz.
Örneğin, birinin SSH oturumunu sonlandırmak istiyorsanız, işlemi basit bir şekilde öldürebilirsiniz, ancak bunu yaparak güvenlik nedeniyle önemli olabilecek HISTORY dosyasını güncellemesini önleyeceksiniz. Fakat bunun yerine bunu SIGHUP'a gönderirseniz , süreç bağlantının öldüğünü varsayar ve standart temizliğini yapar.
SIGQUIT
, burada varsayılan eylem çekirdek doldurup sonlandırmaktır. Bir program çok yanlış bir şey yapıyorsa, hemen durdurmanız gerekir ve daha sonra hata ayıklamak istiyorsanız bu kullanılabilir.
öldür -9 Anlamı: Süreç çekirdek tarafından öldürülecek; bu sinyal göz ardı edilemez. 9, yakalanamayan veya tutuşamayan KILL sinyalini ifade eder.
Kullanım Alanları: SIGKILL singal
Kill Anlamı: Herhangi bir sinyal olmadan kill komutu, işlemi normal şekilde sonlandıran 15 sinyalini geçer.
Kullanım Alanları: Programcılar tarafından idare edilebilecek SIGTERM sinyali
kill -9