自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

怎樣在Linux命令行下殺死一個進程

系統(tǒng) Linux
值得慶幸的是, Linux 有供用戶殺死錯誤的進程的每個必要的工具,然而,你在執(zhí)行殺死進程的命令之前,你首先需要知道進程是什么。該如何處理這一類的任務。一旦你能夠掌握這種工具,它實際是十分簡單的……

[[192469]]

Linux 的命令行里面有用來停止正在運行的進程的所有所需工具。Jack Wallen 將為您講述細節(jié)。

想像一下:你打開了一個程序(可能來自于你的桌面菜單或者命令行),然后開始使用這個程序,沒想到程序會鎖死、停止運行、或者意外死機。你嘗試再次運行該程序,但是它反饋說原來的進程沒有完全關閉。

你該怎么辦?你要結束進程。但該如何做?不管你信與不信,***的解決方法大都在命令行里。值得慶幸的是, Linux 有供用戶殺死錯誤的進程的每個必要的工具,然而,你在執(zhí)行殺死進程的命令之前,你首先需要知道進程是什么。該如何處理這一類的任務。一旦你能夠掌握這種工具,它實際是十分簡單的……

讓我來介紹給你這些工具。

我來概述的步驟是每個 Linux 發(fā)行版都能用的,不論是桌面版還是服務器版。我將限定只使用命令行,請打開你的終端開始輸入命令吧。

定位進程

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

 

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

從顯示的列表中你能夠看到相當重要的信息,舉個例子,Chrome 瀏覽器反映遲鈍,依據我們的 top 命令顯示,我們能夠辨別的有四個 Chrome 瀏覽器的進程在運行,進程的 pid 號分別是 3827、3919、10764 和 11679。這個信息是重要的,可以用一個特殊的方法來結束進程。

盡管 top 命令很是方便,但也不是得到你所要信息最有效的方法。 你知道你要殺死的 Chrome 進程是那個,并且你也不想看 top 命令所顯示的實時信息。 鑒于此,你能夠使用 ps 命令然后用 grep 命令來過濾出輸出結果。這個 ps 命令能夠顯示出當前進程列表的快照,然后用 grep 命令輸出匹配的樣式。我們通過 grep 命令過濾 ps 命令的輸出的理由很簡單:如果你只輸入 ps 命令,你將會得到當前所有進程的列表快照,而我們需要的是列出 Chrome 瀏覽器進程相關的。所以這個命令是這個樣子:

  1. ps aux | grep chrome 

這里 aux 選項如下所示:

  • a = 顯示所有用戶的進程
  • u = 顯示進程的用戶和擁有者
  • x = 也顯示不依附于終端的進程

當你搜索圖形化程序的信息時,這個 x 參數是很重要的。

當你輸入以上命令的時候,你將會得到比圖 2 更多的信息,而且它有時用起來比 top 命令更有效。

用 ps 命令來定位所需的內容信息。 

圖 2:用 ps 命令來定位所需的內容信息。

結束進程

現在我們開始結束進程的任務。我們有兩種可以幫我們殺死錯誤的進程的信息。

  • 進程的名字
  • 進程的 ID (PID)

你用哪一個將會決定終端命令如何使用,通常有兩個命令來結束進程:

  • kill - 通過進程 ID 來結束進程
  • killall - 通過進程名字來結束進程

有兩個不同的信號能夠發(fā)送給這兩個結束進程的命令。你發(fā)送的信號決定著你想要從結束進程命令中得到的結果。舉個例子,你可以發(fā)送 HUP(掛起)信號給結束進程的命令,命令實際上將會重啟這個進程。當你需要立即重啟一個進程(比如就守護進程來說),這是一個明智的選擇。你通過輸入 kill -l 可以得到所有信號的列表,你將會發(fā)現大量的信號。

 可用的結束進程信號。 

圖 3: 可用的結束進程信號。

最經常使用的結束進程的信號是:

Signal Name Single Value Effect
SIGHUP 1 掛起
SIGINT 2 鍵盤的中斷信號
SIGKILL 9 發(fā)出殺死信號
SIGTERM 15 發(fā)出終止信號
SIGSTOP 17, 19, 23 停止進程

好的是,你能用信號值來代替信號名字。所以你沒有必要來記住所有各種各樣的信號名字。

所以,讓我們現在用 kill 命令來殺死 Chrome 瀏覽器的進程。這個命令的結構是:

  1. kill SIGNAL PID 

這里 SIGNAL 是要發(fā)送的信號,PID 是被殺死的進程的 ID。我們已經知道,來自我們的 ps 命令顯示我們想要結束的進程 ID 號是 3827、3919、10764 和 11679。所以要發(fā)送結束進程信號,我們輸入以下命令: 

  1. kill -9 3827 
  2. kill -9 3919 
  3. kill -9 10764 
  4. kill -9 11679 

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

我們有更簡單的方法!如果我們已經知道我們想要殺死的那個進程的名字,我們能夠利用 killall 命令發(fā)送同樣的信號,像這樣:

  1. killall -9 chrome 

附帶說明的是,上邊這個命令可能不能捕捉到所有正在運行的 Chrome 進程。如果,運行了上邊這個命令之后,你輸入 ps aux | grep chrome 命令過濾一下,看到剩下正在運行的 Chrome 進程有那些,***的辦法還是回到 kIll 命令通過進程 ID 來發(fā)送信號值 9 來結束這個進程。

結束進程很容易

正如你看到的,殺死錯誤的進程并沒有你原本想的那樣有挑戰(zhàn)性。當我讓一個頑固的進程結束的時候,我趨向于用 killall命令來作為有效的方法來終止,然而,當我讓一個真正的活躍的進程結束的時候,kill命令是一個好的方法。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2019-02-25 09:50:25

Linux命令行僵尸進程

2019-05-21 10:38:17

Linux命令行

2009-12-09 09:25:52

Linux命令行svn命令

2010-06-01 19:14:53

SVN命令行

2021-11-01 12:13:53

Linux僵尸進程

2020-03-30 12:57:50

Linux命令行Markdown

2018-12-12 09:44:07

Linux命令行時間管理

2009-08-11 09:58:22

Linux命令行Linux命令svn命令

2019-12-10 10:03:18

Linux命令行工具

2011-06-17 16:49:05

Cocoa蘋果

2018-05-09 15:03:00

Linux命令行筆記

2009-10-27 08:57:50

linux殺死進程

2018-06-12 15:10:11

Linuxvim命令PacVim

2021-07-15 13:32:12

Linux生成密碼

2021-07-15 13:25:43

LinuxPDF

2015-07-13 11:05:31

Linuxlolcat

2009-02-18 20:20:40

autojump更改目錄命令行下

2009-10-26 18:09:31

Oracle用戶解鎖

2009-02-17 23:21:12

autojump命令行下快速更改目錄

2016-09-23 20:16:23

TaskwarriorLinux命令行工具
點贊
收藏

51CTO技術棧公眾號