Answers:
wmctrl
实际上还有另一个-p
列出PID的标志。
bash-4.3$ wmctrl -lp
0x0380000a 0 4410 eagle Desktop
0x04800006 0 4275 eagle XdndCollectionWindowImp
0x04800009 0 4275 eagle unity-launcher
0x0480000c 0 4275 eagle unity-panel
0x0480000f 0 4275 eagle unity-dash
0x04800010 0 4275 eagle Hud
知道这一点后,提取该窗口的PID并将其传递给 kill
wmctrl -lp | awk '/Window Title/{print $3}' | xargs kill
您也可以使用xkill -id [id]
。该xkill工具从其他答案的工作方式不同-而不是关闭窗口或直接杀伤的过程中,它指示X服务器断开连接创建窗口客户端。这通常会导致进程终止,即使对于远程进程也是如此。
每种方法的优点和缺点:
wmctrl -c
“优雅地”关闭窗口-就像您自己单击窗口管理器的关闭按钮一样。如果应用程序不希望该窗口被关闭或冻结,则这可能不会终止该进程,甚至可能无法关闭该窗口。
使用wmctrl -lp
with中的pid kill
可以确保杀死进程,但是如果进程可能在其他计算机上运行,则可能需要额外的工作或根本无法工作。
xkill
如果它设计为能够从X服务器崩溃或网络连接丢失中恢复,则可能不会终止该过程,但是大多数应用程序在这种情况下只会崩溃。无论如何,窗户都会消失。远程进程和本地进程的处理方式相同。
使用xkill
。只需输入xkill
您的终端,然后单击所需的窗口即可。
杀人