彰化一整天的論壇

 找回密碼
 立即註冊
查看: 89|回復: 0

【轉貼】在 Linux 中使用 kill、killall 與 xkill 等指令強迫關...

[複製鏈接]
發表於 2019-7-3 10:34:50 | 顯示全部樓層 |閱讀模式
本帖最後由 discuz 於 2019-7-3 10:37 編輯

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

這樣會強迫程式馬上中止。kill 指令常用的訊號有幾個:

-2:這個訊號與鍵盤輸入 Ctrl + C 是同樣的動作,也是通知程式停止執行。
-9:立刻強制停止程式執行。
-15:以正常的程序通知程式停止執行,這是預設的訊號。
-l:列出所有可用的訊號。
以下是一些 kill 指令的使用範例:

將行程 ID 為 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 這個程式:

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

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

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






文章來源: https://blog.gtwang.org/linux/linux-kill-killall-xkill/

回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

 ㄚ母滴雞湯
 員林香純滴雞精

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  |网站地图

GMT+8, 2019-10-21 10:13 , Processed in 0.116229 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表