如何使用‘xkill’命令终止Linux进程/无响应应用程序

我們如何在Linux中終止一個資源/進程?顯然,我們找到資源的PID,然後將PID傳遞給kill命令。

更準確地說,我們可以找到資源(比如終端)的PID如下:

$ ps -A | grep -i terminal

6228 ?        00:00:00 gnome-terminal

在上面的輸出中,數字’6228‘是進程(gnome-terminal)的PID,使用kill命令來終止進程如下所示。

$ kill 6228

kill命令向一個進程發送一個信號,該信號與命令一起傳遞的PID相對應。

或者,我們可以使用pkill命令,根據進程的名稱和其他屬性來終止一個進程。要終止一個名稱為終端的進程,我們需要執行:

$ pkill terminal

注意: pkill中進程名的長度限制為 15個字符。

pkill似乎更方便,因為您可以終止一個進程而無需找到其PID。但如果您想更好地控制您的系統,沒有什麼比‘kill‘命令更好了。使用kill,您將更好地了解您正在終止的進程。

我們已經涵蓋了有關kill、pkill和killall命令的詳細指南。

對於運行X伺服器的用戶,還有另一個工具叫做xkill,它可以從其X視窗終止一個進程,而無需傳遞進程名或其PID。

xkill工具強制X伺服器關閉與其客戶端的通訊,導致客戶端被其X資源殺死。 xkill是X11實用工具的一部分,在終止不必要的視窗時非常方便。

它支援選項,例如連接到特定的X伺服器(-display displayname),在主機同時運行多個X伺服器時使用顯示號碼,以及殺死所有具有頂級視窗的客戶端(-all,不建議),並考慮框架(-frame)。

要獲取所有客戶端的列表,您可以運行:

$ 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

如果未傳遞ID,xkill會將滑鼠指針變成特殊符號,類似於“X”。只需點擊要終止的視窗,這將終止其與伺服器的通訊,或者說該程序被終止。

$ xkill
Kill Process Using xkill

值得注意的是,xkill不能保證關閉其通訊會成功終止/中止它。當與伺服器的通訊關閉時,大多數應用程序將被終止。然而,有些可能仍在運行。

這裡需要提到的一點是:

  1. 此工具僅在運行X11伺服器時有效,因為xkill是X11實用工具的一部分。
  2. 不要將關閉和終止資源混淆。在終止資源時,您可能預期它無法正常退出。
  3. 這不是kill實用工具的替代品。
我需要進入Linux命令行來調用xkill嗎?

不,您不需要從Linux命令行中執行xkill。您可以設置鍵盤快捷鍵,只需按下相同的鍵組合即可調用xkill。

以下是在典型的gnome3桌面環境中設置鍵盤快捷鍵的方法。

進入設置 -> 選擇鍵盤,點擊“+”添加名稱和命令。點擊新項目,然後按下您想要用作快捷鍵組合的按鍵。我使用了Ctrl+Alt+Shift+x

Gnome Settings
Add Shortcut Key

下次您想要終止X資源時,只需調用該鍵組合(Ctrl+Alt+Shift+x),您會注意到您的鼠標指針變成了x。點擊您想要終止的x資源,所有工作完成!

Source:
https://www.tecmint.com/kill-processes-unresponsive-programs-in-ubuntu/