我們如何在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

值得注意的是,xkill不能保證關閉其通訊會成功終止/中止它。當與伺服器的通訊關閉時,大多數應用程序將被終止。然而,有些可能仍在運行。
這裡需要提到的一點是:
- 此工具僅在運行X11伺服器時有效,因為xkill是X11實用工具的一部分。
- 不要將關閉和終止資源混淆。在終止資源時,您可能預期它無法正常退出。
- 這不是kill實用工具的替代品。
我需要進入Linux命令行來調用xkill嗎?
不,您不需要從Linux命令行中執行xkill。您可以設置鍵盤快捷鍵,只需按下相同的鍵組合即可調用xkill。
以下是在典型的gnome3桌面環境中設置鍵盤快捷鍵的方法。
進入設置 -> 選擇鍵盤,點擊“+”添加名稱和命令。點擊新項目,然後按下您想要用作快捷鍵組合的按鍵。我使用了Ctrl+Alt+Shift+x。


下次您想要終止X資源時,只需調用該鍵組合(Ctrl+Alt+Shift+x),您會注意到您的鼠標指針變成了x。點擊您想要終止的x資源,所有工作完成!
Source:
https://www.tecmint.com/kill-processes-unresponsive-programs-in-ubuntu/