溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在Linux命令行下殺死一個(gè)進(jìn)程

發(fā)布時(shí)間:2021-10-23 15:59:14 來(lái)源:億速云 閱讀:432 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹了如何在Linux命令行下殺死一個(gè)進(jìn)程,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

定位進(jìn)程

殺死一個(gè)沒(méi)有響應(yīng)的進(jìn)程的***個(gè)步驟是定位這個(gè)進(jìn)程。我用來(lái)定位進(jìn)程的命令有兩個(gè):top 和 ps 命令。top 是每個(gè)系統(tǒng)管理員都知道的工具,用 top  命令,你能夠知道到所有當(dāng)前正在運(yùn)行的進(jìn)程有哪些。在命令行里,輸入 top 命令能夠就看到你正在運(yùn)行的程序進(jìn)程(圖1)

如何在Linux命令行下殺死一個(gè)進(jìn)程

圖 1: top 命令給出你許多的信息。

從顯示的列表中你能夠看到相當(dāng)重要的信息,舉個(gè)例子,Chrome 瀏覽器反映遲鈍,依據(jù)我們的 top 命令顯示,我們能夠辨別的有四個(gè) Chrome  瀏覽器的進(jìn)程在運(yùn)行,進(jìn)程的 pid 號(hào)分別是 3827、3919、10764 和 11679。這個(gè)信息是重要的,可以用一個(gè)特殊的方法來(lái)結(jié)束進(jìn)程。

盡管 top 命令很是方便,但也不是得到你所要信息最有效的方法。 你知道你要?dú)⑺赖?Chrome 進(jìn)程是那個(gè),并且你也不想看 top  命令所顯示的實(shí)時(shí)信息。 鑒于此,你能夠使用 ps 命令然后用 grep 命令來(lái)過(guò)濾出輸出結(jié)果。這個(gè) ps 命令能夠顯示出當(dāng)前進(jìn)程列表的快照,然后用 grep  命令輸出匹配的樣式。我們通過(guò) grep 命令過(guò)濾 ps 命令的輸出的理由很簡(jiǎn)單:如果你只輸入 ps 命令,你將會(huì)得到當(dāng)前所有進(jìn)程的列表快照,而我們需要的是列出  Chrome 瀏覽器進(jìn)程相關(guān)的。所以這個(gè)命令是這個(gè)樣子:

ps aux | grep chrome

這里 aux 選項(xiàng)如下所示:

  • a = 顯示所有用戶的進(jìn)程

  • u = 顯示進(jìn)程的用戶和擁有者

  • x = 也顯示不依附于終端的進(jìn)程

當(dāng)你搜索圖形化程序的信息時(shí),這個(gè) x 參數(shù)是很重要的。

當(dāng)你輸入以上命令的時(shí)候,你將會(huì)得到比圖 2 更多的信息,而且它有時(shí)用起來(lái)比 top 命令更有效。

如何在Linux命令行下殺死一個(gè)進(jìn)程

圖 2:用 ps 命令來(lái)定位所需的內(nèi)容信息。

結(jié)束進(jìn)程

現(xiàn)在我們開(kāi)始結(jié)束進(jìn)程的任務(wù)。我們有兩種可以幫我們殺死錯(cuò)誤的進(jìn)程的信息。

  • 進(jìn)程的名字

  • 進(jìn)程的 ID (PID)

你用哪一個(gè)將會(huì)決定終端命令如何使用,通常有兩個(gè)命令來(lái)結(jié)束進(jìn)程:

  • kill - 通過(guò)進(jìn)程 ID 來(lái)結(jié)束進(jìn)程

  • killall - 通過(guò)進(jìn)程名字來(lái)結(jié)束進(jìn)程

有兩個(gè)不同的信號(hào)能夠發(fā)送給這兩個(gè)結(jié)束進(jìn)程的命令。你發(fā)送的信號(hào)決定著你想要從結(jié)束進(jìn)程命令中得到的結(jié)果。舉個(gè)例子,你可以發(fā)送  HUP(掛起)信號(hào)給結(jié)束進(jìn)程的命令,命令實(shí)際上將會(huì)重啟這個(gè)進(jìn)程。當(dāng)你需要立即重啟一個(gè)進(jìn)程(比如就守護(hù)進(jìn)程來(lái)說(shuō)),這是一個(gè)明智的選擇。你通過(guò)輸入 kill -l  可以得到所有信號(hào)的列表,你將會(huì)發(fā)現(xiàn)大量的信號(hào)。

如何在Linux命令行下殺死一個(gè)進(jìn)程

圖 3: 可用的結(jié)束進(jìn)程信號(hào)。

最經(jīng)常使用的結(jié)束進(jìn)程的信號(hào)是:

Signal NameSingle ValueEffect
SIGHUP1掛起
SIGINT2鍵盤(pán)的中斷信號(hào)
SIGKILL9發(fā)出殺死信號(hào)
SIGTERM15發(fā)出終止信號(hào)
SIGSTOP17, 19, 23停止進(jìn)程

好的是,你能用信號(hào)值來(lái)代替信號(hào)名字。所以你沒(méi)有必要來(lái)記住所有各種各樣的信號(hào)名字。

所以,讓我們現(xiàn)在用 kill 命令來(lái)殺死 Chrome 瀏覽器的進(jìn)程。這個(gè)命令的結(jié)構(gòu)是:

kill SIGNAL PID

這里 SIGNAL 是要發(fā)送的信號(hào),PID 是被殺死的進(jìn)程的 ID。我們已經(jīng)知道,來(lái)自我們的 ps 命令顯示我們想要結(jié)束的進(jìn)程 ID 號(hào)是  3827、3919、10764 和 11679。所以要發(fā)送結(jié)束進(jìn)程信號(hào),我們輸入以下命令:

kill -9 3827 kill -9 3919 kill -9 10764 kill -9 11679

一旦我們輸入了以上命令,Chrome 瀏覽器的所有進(jìn)程將會(huì)成功被殺死。

我們有更簡(jiǎn)單的方法!如果我們已經(jīng)知道我們想要?dú)⑺赖哪莻€(gè)進(jìn)程的名字,我們能夠利用 killall 命令發(fā)送同樣的信號(hào),像這樣:

killall -9 chrome

附帶說(shuō)明的是,上邊這個(gè)命令可能不能捕捉到所有正在運(yùn)行的 Chrome 進(jìn)程。如果,運(yùn)行了上邊這個(gè)命令之后,你輸入 ps aux | grep chrome  命令過(guò)濾一下,看到剩下正在運(yùn)行的 Chrome 進(jìn)程有那些,***的辦法還是回到 kIll 命令通過(guò)進(jìn)程 ID 來(lái)發(fā)送信號(hào)值 9 來(lái)結(jié)束這個(gè)進(jìn)程。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何在Linux命令行下殺死一個(gè)進(jìn)程”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI