如何使用‘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/