网站搜索

如何使用“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命令,它根据进程的名称和其他属性来终止进程。要杀死一个名为terminal的进程,我们需要执行:


pkill terminal

注意: pkill 中的进程名称长度限制为 15 个字符。

pkill 似乎更方便,因为您可以杀死一个进程而不必找出它的 PID。但如果您想更好地控制系统,没有什么比“kill”命令更好的了。使用kill你可以更好地了解你正在杀死什么进程。

我们已经介绍了有关kill、pkill 和killall 命令的详细指南。

对于那些运行X服务器的人来说,还有另一个名为xkill的工具,它可以从X窗口杀死进程,而无需传递进程名称或其PID。

xkill 实用程序强制 X 服务器关闭与其客户端的通信,这会导致客户端被其 X 资源杀死。 xkill 是 X11 实用程序的一部分,它可以非常方便地杀死不必要的窗口。

当多个 X Server 同时在主机上运行时,它支持使用显示编号连接到特定 X Server (-display displayname) 等选项,并杀死所有客户端 (-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 不保证关闭其通信将成功终止/中止它。当与服务器的通信关闭时,大多数应用程序将被终止。然而,有一些可能仍在运行。

这里需要提到的几点:

  1. 该工具仅在 X11 服务器运行时才起作用,因为 xkill 是 X11 实用程序的一部分。
  2. 不要与关闭和终止资源混淆。在杀死资源时,您可能希望它不会干净地退出。
  3. 这不是 Kill 实用程序的替代品。
我需要进入 Linux 命令行来调用 xkill 吗?

不,您不需要从 Linux 命令行启动 xkill。您可以设置键盘快捷键并通过敲击相同的组合键来调用 xkill。

以下是如何在典型的 gnome3 桌面环境中设置键盘快捷键。

转到设置 -> 选择键盘,单击‘+’并添加名称和命令。单击新条目,然后按要用作快捷键组合的键。我执行了Ctrl+Alt+Shift+x

下次您想要终止 X 资源时,只需调用组合键 (Ctrl+Alt+Shift+x),您会发现鼠标指针变为 x。单击您想要杀死的x资源,一切就完成了!