我們?nèi)绾卧贚inux中殺掉一個(gè)資源/進(jìn)程?很明顯我們會(huì)找出資源的pid然后用kill命令。
說(shuō)的更明白一點(diǎn),我們可以找到某個(gè)資源(比如terminal)的PID:
$ ps -A | grep -i terminal
6228 ? 00:00:00 gnome-terminal
上面的輸出中,‘6288’就是進(jìn)程(gnome-terminal)的pid, 使用下面的命令來(lái)殺掉進(jìn)程。
$ kill 6228
kill命令會(huì)發(fā)送一個(gè)信號(hào)給該pid的進(jìn)程。
另外一個(gè)方法是我們可以使用pkill命令,它可以基于進(jìn)程的名字或者其他的屬性來(lái)殺掉進(jìn)程。同樣我們要?dú)⒌粢粋€(gè)叫terminal的進(jìn)程可以這么做:
$ pkill terminal
注意: pkill命令后面進(jìn)程名的長(zhǎng)度不大于15個(gè)字符
pkill看上去更加容易上手,因?yàn)槟隳悴挥谜页鲞M(jìn)程的pid。但是如果你要對(duì)系統(tǒng)做更好的控制,那么沒(méi)有什么可以打敗'kill'。使用kill命令可以更好地審視你要?dú)⒌舻倪M(jìn)程。
對(duì)于那些運(yùn)行X Server的人而言,有另外一個(gè)工具稱為xkill可以將進(jìn)程從X Window中殺掉而不必傳遞它的名字或者pid。
xkill工具強(qiáng)制X server關(guān)閉與它的客戶程序之間的聯(lián)系,其結(jié)果就是X resource關(guān)閉了這個(gè)客戶程序。xkill是X11工具集中一個(gè)非常容易上手的殺掉無(wú)用窗口的工具。
它支持的選項(xiàng)如在同時(shí)運(yùn)行多個(gè)X Server時(shí)使用-display選項(xiàng)后面跟上顯示號(hào)連接到指定的X server,使用-all(并不建議)殺掉所有在屏幕上的所有頂層窗口,以及幀(-frame)參數(shù)。
要列出所有的客戶程序你可以運(yùn)行:
$ xlsclients
示例輸出
' ' /usr/lib/libreoffice/program/soffice
deb gnome-shell
deb Docky
deb google-chrome-stable
deb soffice
deb gnome-settings-daemon
deb gnome-terminal-server
如果后面沒(méi)有跟上資源id,xkill會(huì)將鼠標(biāo)指針變成一個(gè)特殊符號(hào),類似于“X”。只需在你要?dú)⒌舻拇翱谏宵c(diǎn)擊,它就會(huì)殺掉它與server端的通信,這個(gè)程序就被殺掉了。
$ xkill
需要注意的是xkill并不能保證它的通信會(huì)被成功殺掉/退出。大多數(shù)程序會(huì)在與服務(wù)端的通信被關(guān)閉后殺掉。然而仍有少部分會(huì)繼續(xù)運(yùn)行。
需要指出的點(diǎn)是:
這個(gè)工具只能在X11 server運(yùn)行的時(shí)候才能使用,因?yàn)檫@是X11工具的一部分。
不要在你殺掉一個(gè)資源而它沒(méi)有完全退出時(shí)而困惑。
這不是kill的替代品
我需要在linux命令行中使用xkill么
不是,你不必非在命令行中運(yùn)行xkill。你可以設(shè)置一個(gè)快捷鍵,并用它來(lái)調(diào)用xkill。
下面是如何在典型的gnome3桌面中設(shè)置鍵盤快捷鍵。
進(jìn)入設(shè)置-> 選擇鍵盤。點(diǎn)擊'+'并添加一個(gè)名字和命令。點(diǎn)擊點(diǎn)擊新條目并按下你想要的組合鍵。我的是Ctrl+Alt+Shift+x。

Gnome 設(shè)置

添加快捷鍵