通过窗口告诉进程PID?


Answers:


57

根据您对另一个问题的要求,以下是我的回答:

我敢肯定有一种更清洁的方法,但是对于第二个问题,您可以尝试以下方法:

   xprop _NET_WM_PID | sed 's/_NET_WM_PID(CARDINAL) = //' | ps `cat`

这将使光标成为十字形,您可以通过它单击打开的窗口。它将在您运行的终端中报告PID和命令。

通常,xprop和xwininfo将为您提供有关打开的窗口的许多信息。

我用来包围猫的“撇号”是键盘上的〜键,而无需按shift键。这应该为您提供有关该主题的更多信息:

严重口音和反引号


xprop说:_NET_WM_PID:找不到。这种方法不够安全……
Calmarius 2012年

5
这更容易记住:(xprop | grep PID尽管它只打印进程ID)
KajMagnus

这个答案只是提醒我,我已经完全忘记了任务栏上的肉桂小程序。哇。至少谢谢你!
FabianRöling

16

您可以尝试xprop | grep WM_CLASS,然后单击您感兴趣的窗口。

例子:

#> xprop | grep WM_CLASS
WM_CLASS(STRING) = "gedit", "Gedit"

#> xprop | grep WM_CLASS
WM_CLASS(STRING) = "gcalctool", "Gcalctool"

9

在终端中运行以下命令:

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

您的鼠标指针将被替换为十字准线。选择您感兴趣的窗口。

此方法仅显示拥有该窗口的进程的PID(这似乎是您想要的)。


2

您可以使用以下方法获取过程信息:

$ ps -f --pid $(xprop _NET_WM_PID | grep -o '[0-9]*')

0

运行xprop | awk '/_NET_WM_PID\(CARDINAL\)/{print $NF}'并单击想要PID的窗口,将PID打印到终端。

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.