linux的kill命令
Linux系統(tǒng)下kill命令的主要功能是殺死進(jìn)程,下面由學(xué)習(xí)啦小編為大家整理了linux的kill命令的相關(guān)知識(shí),希望大家喜歡!
linux的kill命令詳解
kill命令可以從kill這個(gè)詞來大致了解下它的作用,是的,它用來殺死(kill)一個(gè)進(jìn)程。下面是kill命令的詳解。
1.作用
kill命令用來中止一個(gè)進(jìn)程。
2.格式
kill [ -s signal | -p ] [ -a ] pid …
kill -l [ signal ]
3.參數(shù)
-s:指定發(fā)送的信號(hào)。
-p:模擬發(fā)送信號(hào)。
-l:指定信號(hào)的名稱列表。
pid:要中止進(jìn)程的ID號(hào)。
Signal:表示信號(hào)。
4.說明
進(jìn)程是Linux系統(tǒng)中一個(gè)非常重要的概念。linux是一個(gè)多任務(wù)的操作系統(tǒng),系統(tǒng)上經(jīng)常同時(shí)運(yùn)行著多個(gè)進(jìn)程。我們不關(guān)心這些進(jìn)程究竟是如何分配的,或者是內(nèi)核如何管理分配時(shí)間片的,所關(guān)心的是如何去控制這些進(jìn)程,讓它們能夠很好地為用戶服務(wù)。
Linux操作系統(tǒng)包括三種不同類型的進(jìn)程,每種進(jìn)程都有自己的特點(diǎn)和屬性。交互進(jìn)程是由一個(gè)Shell啟動(dòng)的進(jìn)程。交互進(jìn)程既可以在前臺(tái)運(yùn)行,也可以在后臺(tái)運(yùn)行。批處理進(jìn)程和終端沒有聯(lián)系,是一個(gè)進(jìn)程序列。監(jiān)控進(jìn)程(也稱系統(tǒng)守護(hù)進(jìn)程)時(shí)Linux系統(tǒng)啟動(dòng)時(shí)啟動(dòng)的進(jìn)程,并在后臺(tái)運(yùn)行。例如,httpd是著名的Apache服務(wù)器的監(jiān)控進(jìn)程。
kill命令的工作原理是,向Linux系統(tǒng)的內(nèi)核發(fā)送一個(gè)系統(tǒng)操作信號(hào)和某個(gè)程序的進(jìn)程標(biāo)識(shí)號(hào),然后系統(tǒng)內(nèi)核就可以對(duì)進(jìn)程標(biāo)識(shí)號(hào)指定的進(jìn)程進(jìn)行操作。比如在top命令中,我們看到系統(tǒng)運(yùn)行許多進(jìn)程,有時(shí)就需要使用kill中止某些進(jìn)程來提高系統(tǒng)資源。在講解安裝和登陸命令時(shí),曾提到系統(tǒng)多個(gè)虛擬控制臺(tái)的作用是當(dāng)一個(gè)程序出錯(cuò)造成系統(tǒng)死鎖時(shí),可以切換到其它虛擬控制臺(tái)工作關(guān)閉這個(gè)程序。此時(shí)使用的命令就是kill,因?yàn)閗ill是大多數(shù)Shell內(nèi)部命令可以直接調(diào)用的。
linux的kill命令應(yīng)用實(shí)例
(1)強(qiáng)行中止(經(jīng)常使用殺掉)一個(gè)進(jìn)程標(biāo)識(shí)號(hào)為324的進(jìn)程:
#kill -9 324
(2)解除Linux系統(tǒng)的死鎖
在Linux中有時(shí)會(huì)發(fā)生這樣一種情況:一個(gè)程序崩潰,并且處于死鎖的狀態(tài)。此時(shí)一般不用重新啟動(dòng)計(jì)算機(jī),只需要中止(或者說是關(guān)閉)這個(gè)有問題的程序即可。當(dāng)kill處于X-Window界面時(shí),主要的程序(除了崩潰的程序之外)一般都已經(jīng)正常啟動(dòng)了。此時(shí)打開一個(gè)終端,在那里中止有問題的程序。比如,如果Mozilla瀏覽器程序出現(xiàn)了鎖死的情況,可以使用kill命令來中止所有包含有Mozolla瀏覽器的程序。首先用top命令查處該程序的PID,然后使用kill命令停止這個(gè)程序:
#kill -SIGKILL XXX
其中,XXX是包含有Mozolla瀏覽器的程序的進(jìn)程標(biāo)識(shí)號(hào)。
(3)使用命令回收內(nèi)存
我們知道內(nèi)存對(duì)于系統(tǒng)是非常重要的,回收內(nèi)存可以提高系統(tǒng)資源。kill命令可以及時(shí)地中止一些“越軌”的程序或很長時(shí)間沒有相應(yīng)的程序。例如,使用top命令發(fā)現(xiàn)一個(gè)無用 (Zombie) 的進(jìn)程,此時(shí)可以使用下面命令:
#kill -9 XXX
其中,XXX是無用的進(jìn)程標(biāo)識(shí)號(hào)。
然后使用下面命令:
#free
此時(shí)會(huì)發(fā)現(xiàn)可用內(nèi)存容量增加了。
(4)killall命令
Linux下還提供了一個(gè)killall命令,可以直接使用進(jìn)程的名字而不是進(jìn)程標(biāo)識(shí)號(hào),例如:
# killall -HUP inetd