如何使用 xkill 命令杀掉 Linux 进程/未响应的程序
我们如何在 Linux 中杀掉一个资源/进程?很明显我们会找出资源的 pid 然后用 kill 命令。说的更明白一点,我们可以找到某个资源(比如 terminal)的 PID:
$ ps -A | grep -i terminal
6228 ? 00:00:00 gnome-terminal
上面的输出中,‘6288’就是进程(gnome-terminal)的 pid, 使用下面的命令来杀掉进程。
$ kill 6228
kill 命令会发送一个信号给该 pid 的进程。
另外一个方法是我们可以使用 pkill 命令,它可以基于进程的名字或者其他的属性来杀掉进程。同样我们要杀掉一个叫 terminal 的进程可以这么做:
$ pkill terminal
注意 : pkill 命令后面进程名的长度不大于 15 个字符
pkill 看上去更加容易上手,因为你你不用找出进程的 pid。但是如果你要对系统做更好的控制,那么没有什么可以打败'kill'。使用 kill 命令可以更好地审视你要杀掉的进程。
我们已经有一篇覆盖了 kill、pkill 和 killall 命令 细节的指导了。
对于那些运行 X Server 的人而言,有另外一个工具称为 xkill 可以将进程从 X Window 中杀掉而不必传递它的名字或者 pid。
xkill 工具强制 X server 关闭与它的客户程序之间的联系,其结果就是 X resource 关闭了这个客户程序。xkill 是 X11 工具集中一个非常容易上手的杀掉无用窗口的工具。
它支持的选项如在同时运行多个 X Server 时使用-display 选项后面跟上显示号连接到指定的 X server,使用-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”。只需在你要杀掉的窗口上点击,它就会杀掉它与 server 端的通信,这个程序就被杀掉了。
$ xkill
使用 xkill 杀掉进程
需要注意的是 xkill 并不能保证它的通信会被成功杀掉/退出。大多数程序会在与服务端的通信被关闭后杀掉。然而仍有少部分会继续运行。
需要指出的点是:
- 这个工具只能在 X11 server 运行的时候才能使用,因为这是 X11 工具的一部分。
- 不要在你杀掉一个资源而它没有完全退出时而困惑。
- 这不是 kill 的替代品
我需要在 linux 命令行中使用 xkill 么
不是,你不必非在命令行中运行 xkill。你可以设置一个快捷键,并用它来调用 xkill。
下面是如何在典型的 gnome3 桌面中设置键盘快捷键。
进入设置-> 选择键盘。点击'+'并添加一个名字和命令。点击点击新条目并按下你想要的组合键。我的是 Ctrl+Alt+Shift+x。
Gnome 设置
添加快捷键
下次你要杀掉一个 X 资源只要用组合键就行了(Ctrl+Alt+Shift+x),你看到你的鼠标变成 x 了。点击想要杀掉的 x 资源就行了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论