Linux kill 命令使用詳解
功能說明:刪除執行中的程序或工作。
語 法:kill [-s <信息名稱或編號>][程序] 或 kill [-l <信息編號>]
補充說明:kill可將指定的信息送至程序。預設的信息為SIGTERM(15),可將指定程序終止。若仍無法終止該程序,可使用SIGKILL(9)信息嘗試強制刪除程序。程序或工作的編號可利用ps指令或jobs指令查看。
參 數:
-l <信息編號> 若不加<信息編號>選項,則-l參數會列出全部的信息名稱。
-s <信息名稱或編號> 指定要送出的信息。
[程序] [程序]可以是程序的PID或是PGID,也可以是工作編號。
kill命令可以從kill這個詞來大致了解下它的作用,是的,它用來殺死(kill)一個進程。下面是kill命令的詳解。
1.作用
kill命令用來中止一個進程。
2.格式
kill [ -s signal | -p ] [ -a ] pid …
kill -l [ signal ]
3.參數
-s:指定發送的信號。
-p:模擬發送信號。
-l:指定信號的名稱列表。
pid:要中止進程的ID號。
Signal:表示信號。
4.說明
進程是Linux系統中一個非常重要的概念。Linux是一個多任務的操作系統,系統上經常同時運行著多個進程。我們不關心這些進程究竟是如何分配的,或者是內核如何管理分配時間片的,所關心的是如何去控制這些進程,讓它們能夠很好地為用戶服務。
Linux操作系統包括三種不同類型的進程,每種進程都有自己的特點和屬性。交互進程是由一個Shell啟動的進程。交互進程既可以在前台運行,也可以在後台運行。批處理進程和終端沒有聯系,是一個進程序列。監控進程(也稱系統守護進程)是Linux系統啟動時啟動的進程,並在後台運行。例如,httpd 是著名的Apache服務器的監控進程。
kill命令的工作原理是,向Linux系統的內核發送一個系統操作信號和某個程序的進程標識號,然後系統內核就可以對進程標識號指定的進程進行操作。比如在top命令中,我們看到系統運行許多進程,有時就需要使用kill中止某些進程來提高系統資源。在講解安裝和登陸命令時,曾提到系統多個虛擬控制台的作用是當一個程序出錯造成系統死鎖時,可以切換到其它虛擬控制台工作關閉這個程序。此時使用的命令就是kill,因為kill是大多數Shell內部命令可以直接調用的。
應用實例一:
(1)強行中止(經常使用殺掉)一個進程標識號為324的進程:
#kill -9 324
(2)解除Linux系統的死鎖
在Linux中有時會發生這樣一種情況:一個程序崩潰,並且處於死鎖的狀態。此時一般不用重新啟動計算機,只需要中止(或者說是關閉)這個有問題的程序即可。當kill處於X-Window界面時,主要的程序(除了崩潰的程序之外)一般都已經正常啟動了。此時打開一個終端,在那裡中止有問題的程序。比如,如果Mozilla浏覽器程序出現了鎖死的情況,可以使用kill命令來中止所有包含有Mozolla浏覽器的程序。首先用top命令查處該程序的PID,然後使用kill命令停止這個程序:
#kill -SIGKILL XXX
其中,XXX是包含有Mozolla浏覽器的程序的進程標識號。