linux命令--kill


一.Kill 命令

通常,終止一個前臺進程可以使用Ctrl+C鍵,但是,對於一個後臺進程就須用kill命令來終止,我們就需要先使用ps/pidof/pstree/top等工具獲取進程PID,然後使用kill命令來殺掉該進程。
kill命令是通過向進程發送指定的信號來結束相應進程的。
在默認情況下,採用編號爲15的TERM信號。TERM信號將終止所有不能捕獲該信號的進程。對於那些可以捕獲該信號的進程就要用編號爲9的kill信號,強行“殺掉”該進程。

命令格式:

kill[參數][進程號]

命令功能:

發送指定的信號到相應進程。不指定型號將發送SIGTERM(15)終止指定進程。如果任無法終止該程序可用“-KILL” 參數,其發送的信號爲SIGKILL(9) ,將強制結束進程,使用ps命令或者jobs 命令可以查看進程號。root用戶將影響用戶的進程,非root用戶只能影響自己的進程。

 

命令參數:

-l 信號,若果不加信號的編號參數,則使用“-l”參數會列出全部的信號名稱

-a 當處理當前進程時,不限制命令名和進程號的對應關係

-p 指定kill 命令只打印相關進程的進程號,而不發送任何信號

-s 指定發送信號

-u 指定用戶

 

注意:

1、kill命令可以帶信號號碼選項,也可以不帶。如果沒有信號號碼,kill命令就會發出終止信號(15),這個信號可以被進程捕獲,使得進程在退出之前可以清理並釋放資源。也可以用kill向進程發送特定的信號。例如:

kill -2 123

它的效果等同於在前臺運行PID爲123的進程時按下Ctrl+C鍵。但是,普通用戶只能使用不帶signal參數的kill命令或最多使用-9信號。

2、kill可以帶有進程ID號作爲參數。當用kill向這些進程發送信號時,必須是這些進程的主人。如果試圖撤銷一個沒有權限撤銷的進程或撤銷一個不存在的進程,就會得到一個錯誤信息。

3、可以向多個進程發信號或終止它們。

4、當kill成功地發送了信號後,shell會在屏幕上顯示出進程的終止信息。有時這個信息不會馬上顯示,只有當按下Enter鍵使shell的命令提示符再次出現時,纔會顯示出來。

5、應注意,信號使進程強行終止,這常會帶來一些副作用,如數據丟失或者終端無法恢復到正常狀態。發送信號時必須小心,只有在萬不得已時,才用kill信號(9),因爲進程不能首先捕獲它。要撤銷所有的後臺作業,可以輸入kill 0。因爲有些在後臺運行的命令會啓動多個進程,跟蹤並找到所有要殺掉的進程的PID是件很麻煩的事。這時,使用kill 0來終止所有由當前shell啓動的進程,是個有效的方法。

實例1:殺死指定用戶所有進程

[root@localhost ~]# kill -9 $(ps -ef | grep peidalinux)  //注意這種寫法

[root@localhost ~]# kill -u peidalinux



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章