shell中的kill命令

來源:互聯網
上載者:User
簡介:

無論你使用哪種作業系統,你一定會遇到某個行為失常的應用,它把自己鎖死並拒絕關閉。在Linux(還有Mac),你可以用一個"kill"命令強制終結它。在這個教程中,我們將展示給你多種方式使用"kill"命令終結應用。


kill命令

1,kill命令和訊號:

當你執行一個"kill"命令,你實際上發送了一個訊號給系統,讓它去終結不正常的應用。總共有60個你可以使用的訊號,但是基本上你只需要知道SIGTERM(15)和SIGKILL(9)。

kill命令的工作原理是,向Linux系統的核心發送一個系統操作訊號和某個程式的進程標識號,然後系統核心就可以對進程標識號指定的進程進行操作。比如在top命令中,我們看到系統運行許多進程,有時就需要使用kill中止某些進程來提高系統資源。kill是大多數Shell內部命令可以直接調用的。


2,你可以用這個命令看到所有訊號的列表,即列出所有訊號名稱:

$ kill -l


SIGTERM:此訊號請求一個進程停止運行。此訊號是可以被忽略的。進程可以用一段時間來正常關閉,一個程式的正常關閉一般需要一段時間來儲存進度並釋放資源。換句話說,它不是強制停止。
SIGKILL:此訊號強制進程立刻停止運行。程式不能忽略此訊號,而未儲存的進度將會丟失。


3,使用"kill"的文法是:

kill [訊號或選項] PID(s)
預設訊號(當沒有指定的時候)是SIGTERM。當它不起作用時,你可以使用下面的命令來強制kill掉一個進程:

kill SIGKILL PID
或者

kill -9 PID
這裡"-9"代表著SIGKILL訊號。

例如,要kill掉Chrome,我會運行命令:

kill -9 3629,通過$ ps -aux可以得到pid 
也可以在同一時間kill多個進程。
kill -9 PID1 PID2 PID3

得到指定訊號的數值

[root@localhost test6]# kill -l KILL
9

[root@localhost test6]# kill -l SIGKILL

9

[root@localhost test6]# kill -l TERM
15

[root@localhost test6]# kill -l SIGTERM
15


4,init進程是不可殺的
命令:kill -9 1

init是Linux系統操作中不可缺少的程式之一。所謂的init進程,它是一個由核心啟動的使用者級進程。核心自行啟動(已經被載入記憶體,開始運行,並已初始化所有的裝置驅動程式和資料結構等)之後,就通過啟動一個使用者級程式init的方式,完成引導進程。所以,init始終是第一個進程(其進程編號始終為1)。 其它所有進程都是init進程的子孫。init進程是不可殺的。

killall命令: killall同樣使用進程名替代PID,並且它會kill掉所有的同名進程。例如,如果你正在運行多個Firefox瀏覽器的執行個體,可以用命令把它們全部kill掉:

killall chrome


xkill命令:

xkill 是圖形方式kill一個應用。當你在終端鍵入"xkill",你的游標將立刻變成一個"十字"。你只需要做的是在不正常的應用上點擊一下,它就會立刻kill掉這個應用。


注意:

$ kill -9 PID, 這個強大和危險的命令迫使進程在運行時突然終止,進程在結束後不能自我清理。危害是導致系統資源無法正常釋放,一般不推薦使用,除非其他辦法都無效。 
當使用此命令時,一定要通過ps -ef確認沒有剩下任何殭屍進程。只能通過終止父進程來消除殭屍進程。如果殭屍進程被init收養,問題就比較嚴重了。殺死init進程意味著關閉系統。 
如果系統中有殭屍進程,並且其父進程是init,而且殭屍進程佔用了大量的系統資源,那麼就需要在某個時候重啟機器以清除進程表了。

標準的kill命令通常都能達到目的。終止有問題的進程,並把進程的資源釋放給系統。然而,如果進程啟動了子進程,只殺死父進程,子進程仍在運行,因此仍消耗資源。為了防止這些所謂的“殭屍進程”,應確保在殺死父進程之前,先殺死其所有的子進程。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.