首頁  >  文章  >  運維  >  kill是什麼意思?

kill是什麼意思?

little bottle
little bottle原創
2019-05-15 10:30:5931545瀏覽

kill是什麼意思?

在Linux中的kill指令用來終止指定的程序(terminate a process)的執行,kill是Linux下處理程序管理的常用指令。 kill 送出一個特定的訊號 (signal) 給行程 id 為 pid 的行程根據該訊號而做特定的動作,若沒有指定,預設是送出終止 (TERM) 的訊號。


通常,終止一個前台程序可以使用Ctrl C鍵,但是,對於一個後台程序就須用kill指令來終止,我們就需要先使用ps /pidof/pstree/top等工具取得進程PID,然後使用kill指令來殺掉該行程。 kill指令是透過向行程發送指定的訊號來結束對應的進程。

1.指令格式:

kill[參數][行程編號]

2.指令功能

發送指定的訊號到對應進程。不指定型號將發送SIGTERM(15)終止指定程序。如果任無法終止程式可用「-KILL」 參數,其傳送的訊號為SIGKILL(9) ,將強制結束進程,使用ps指令或jobs 指令可以檢視進程編號。 root用戶將影響用戶的進程,非root用戶只能影響自己的進程。

3.指令參數:

-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啟動的進程,是個有效的方法。

以上是kill是什麼意思?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn