linux毁灭指令,在 Linux 中使用 kill、killall 與 xkill 等指令強迫關閉程式

在 Windows 中如果有程式執行到一半當掉或沒有回應,可以使用 Ctrl + Alt + Delete 開啟工作管理員,砍掉當掉的程式,而在 Linux 中如果程式當掉,也有類似的方式可以直接砍掉指定行程(process)。

使用 kill 指令

在 Linux 若要中止程式的執行,最常見的方式就是使用 kill 指令,此指令可以將指定的行程(process)強迫中止,其使用方式如下:kill PID

其中 PID 就是要中止的行程 ID(Process ID),這個 PID 可以從 ps 指令的輸出中得到。

而有時候程式當掉時,這樣的方式如果沒辦法停止程式的執行,可以試試看以不同的訊號(signal)試試看:kill -9 PID

這樣會強迫程式馬上中止。kill 指令常用的訊號有幾個:-2:這個訊號與鍵盤輸入 Ctrl + C 是同樣的動作,也是通知程式停止執行。

-9:立刻強制停止程式執行。

-15:以正常的程序通知程式停止執行,這是預設的訊號。

-l:列出所有可用的訊號。

以下是一些 kill 指令的使用範例:

將行程 ID 為 12932 的程式終止:kill 12932

強制中止行程 ID 為 12932 的程式:kill -9 12932

使用 killall 指令

大家應該會發現基本的 kill 指令有些缺點,每次要中止某個程式時,都要用 ps 指令先查詢該程式的行程 ID(Process ID),才能再用 kill 指令中止程式,有點麻煩,這種狀況就可以改用 killall 指令,這個指令個功能與 kill 指令幾乎相同,但是他是直接使用程式的名稱來指定要中止的程式,這樣只要知道程式名稱即可直接使用。

killall 指令常用的參數有:-e, --exact:在程式名稱完全比對成功時,才中止程式。如果程式的名稱超過 15 個字元,其餘的字元在系統中會被捨去,這時候在預設的狀況下,killall 會把所有符合前 15 個字元的程式都中止掉,如果加上 -e 參數的話,killall 指令就會跳過這種名稱過長的程式。

-I, --ignore-case:在比對程式名稱時,英文大小寫視為相同(ignore case)。

-i, --interactive:在中止程式之前,先以互動式的方式詢問。

-l, --list:列出所有的訊號(signal)名稱。

-r, --regexp:使用常規表示法(regular expression)指定程式名稱。

-s, --signal:指定送出的訊號(signal)。

-u, --user:只中止指定使用者所執行的程式。

-o, --older-than:指定程式的開始執行時間點,必須在此時間點之前。

-y, --younger-than:指定程式的開始執行時間點,必須在此時間點之後。

以下是一些 kill 指令的使用範例:

中止執行 xclock 這個程式:killall xclock

使用 pkill 指令

pkill 指令與 killall 指令類似,也是可以指定程式名稱,但是其所指定的名稱會直接以常規表示法(regular expression)的方式比對,只要比對成功,就會中止該程式。

對於不熟悉常規表示法的初學者而言,用此程式可能比較危險,如果使用不正確的常規表示法,可能會把不該中止的程式也砍了,所以使用上要注意。

另外有一個 pgrep 指令,此指令與 pkill 的語法幾乎相同,但此指令不會直接中止程式,而是把符合的行程 ID(Process ID)列出來,這個指令可以讓你在使用 pkill 指令前先做一次確認,或是與其他的指令搭配使用,例如將 firefox 的 nice 值調大:renice +4 `pgrep firefox`

使用 xkill 指令

上面所提到的指令都是要以程式的行程 ID 或程式的名稱來指定要中止的程式,但是在 X Window 的桌面環境中,如果視窗程式當掉,要找到該程式的行程 ID 或程式名稱事件很麻煩的事情,尤其是在當機的時候。

xkill 就是為了中止視窗程式而設計的指令,可以讓你在不需要知道程式的行程 ID 與名稱的情況,直接把該程式砍掉,以下是使用教學範例:

這是 Ubuntu 的 Unity 桌面環境,

18a3aed6338fe46fba03ac240922b2af.png

Unity 桌面環境

假設我們想要強迫桌面上的 xclock 這個視窗程式停止執行,就直接在終端機中執行:

xkill

執行 xkill 之後,滑鼠游標就會變成一個叉的形狀,這時候就用滑鼠去點擊要中止執行的視窗。

f7098a161dbb28e5f64b0ef46d987a50.png

使用 xkill 砍掉 xclock

被點擊到的視窗程式就會立刻被中止執行,使用方式就是這麼簡單。

製作 xkill 啟動圖示

xkill 雖然已經很方便了,但是美中不足的一點就是還是需要自己開啓終端機輸入一行指令,這個部分我們可以自行製作一個啓動圖示,這樣就完全不需要使用任何指令了。

Ubuntu 的 Unity 桌面跟 Gnome 有些不同,若要新增啟動圖示,要自己編輯 .desktop 檔。

Step 1

首先在終端機執行:gedit ~/.local/share/applications/xkill.desktop

這會開啟 gedit 編輯一個啟動圖示的 .desktop 檔。

Step 2

輸入以下內容:[Desktop Entry]

Name=xkill

Comment=

Exec=/usr/bin/xkill

Icon=/home/seal/plunderin_pirates.png

Terminal=false

Type=Application

StartupNotify=true

其中,Name 是指定啟動圖示的名稱,而 Icon 則是指定啟動圖示所顯示的圖片。

輸入完成後,儲存此檔案,然後就可以關閉 gedit 了。

Step 3

在桌面的左上角有個 Ubuntu 選單,點下去後搜尋 xkill。

c32ed40b0b3a09b04cddf9c873982113.png

在 Unity 選單搜尋 xkill 啟動圖示

這時候應該就可以找到剛剛新增的 xkill 啟動圖示了,直接把這個 xkill 的圖示用滑鼠拖到左側的工具選單中。

86655bb473c7aba9da0eceeff77f81ae.png

這樣就完成了,之後若是要砍掉桌面上的視窗程式,就點一下這個 xkill 的啟動圖示,再點擊要中止的視窗就可以了。

以下是一些可以用來作為 xkill 的啟動圖示的圖片,大家有需要可以下載回去使用。

5cb4e6efff8cf3c255c2e626697dbbbf.png

604532f34017e99bc19528f8cf206689.png

9f9060f4d2c57cacebc5dfa433b63ed2.png

943d44951063bb94b792f97a7083ac33.png

0b708b8af50ac43b6bc48039507f1162.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值