从窗口获取过程信息的简便方法


18

在Windows上,我可以使用Process Explorer并将其十字线拖动到窗口,然后Process Explorer突出显示关联的进程。

在Ubuntu上,我在系统监视器中找不到这样的功能。从窗口获取过程的简单方法是什么?

我愿意下载替代的过程监视器或其他工具。

Answers:


19

如果可以使用终端,请尝试以下操作:

xprop | grep WM_CLASS

并且光标应变成十字形,允许您单击任何窗口以获取其进程名称。如果只需要PID,请尝试:

xprop | awk '/PID/ {print $3}'

希望这可以帮助。


6
grep并不是必须的,您可以给一个属性名称作为参数,使其仅xprop WM_CLASS直接显示该名称。请注意,尤其WM_CLASS不必与进程可执行文件相同,它可以是开发人员设置的任意值。
字节指挥官

就像魅力一样,谢谢。
Gqqnbig

13

在其他答案中xprop已经提到使用方法并且可能是最好的解决方案。

另一种方法是在可能的情况下使用wmctrl -lp它列出由窗口管理器管理的所有窗口及其各自的进程ID(PID):

$ wmctrl -lp
0x03a00002  0 1570   type40mark3 XdndCollectionWindowImp
0x03a00003  0 1570   type40mark3 unity-launcher
0x03a00004  0 1570   type40mark3 unity-panel
0x03a00005  0 1570   type40mark3 unity-dash
0x03a00006  0 1570   type40mark3 Hud
0x02c0000a -1 302    type40mark3 Desktop
0x08a00003  0 8861   type40mark3 18.04 - Easy way to get process from window - Ask Ubuntu - Mozilla Firefox
0x08a00033  0 8861   type40mark3 Some other site in a different window - Mozilla Firefox
0x0840b72c  0 20705  type40mark3 bytecommander@type40mark3: ~
0x08800001  0 7389   type40mark3 New Tab - Chromium

然后,您可以使用此PID获得有关该过程的更多信息,例如ps aux -q YOUR_PID_HERE

$ ps aux -q 20705
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
bytecom+ 20705  0.0  0.2 676820 32268 ?        Sl   Jun28   1:58 /usr/lib/gnome-terminal/gnome-terminal-server

感谢您分享此命令。我更喜欢其他视觉方式。有时窗口没有标题栏或无聊,从wmctrl给出的列表中我无法真正看出来。
Gqqnbig
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.