如何使用“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 服务器同时在一台主机上运行时,使用显示号连接到特定的 X 服务器 ( -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不保证关闭通信就能成功终止/中止它。大多数应用程序在与服务器的通信关闭时会被终止。不过,少数应用程序可能仍在运行。
这里需要提及的几点:
- 此工具仅在 X11 服务器运行时才有效,因为 xkill 是 X11 实用程序的一部分。
- 不要将“关闭”和“终止”混淆。在终止资源时,您可能认为它不会干净地退出。
- 这并不能替代 kill 实用程序。
我需要去 Linux 命令行来调用 xkill 吗?
不,您不需要从 Linux 命令行启动xkill。您可以设置键盘快捷键,只需按下相同的组合键即可调用 xkill。
以下是如何在典型的gnome3桌面环境中设置键盘快捷键。
转到“设置” –> “选择键盘”,单击“+”并添加名称和命令。单击新条目并按下要用作快捷键组合的键。我按的是Ctrl+Alt+Shift+x。
下次您想要终止 X 资源时,只需调用组合键 ( Ctrl+Alt+Shift+x ),您将注意到鼠标指针变为x。单击您想要终止的x资源,一切就完成了!