2011-04-04 51 views
4

如何從xid(X窗口標識符)獲取pid?如何獲得給定PID的xid列表?如何從pid獲得xid(反之亦然)?

(假設所有的應用程序與DISPLAY=:0運行,無需網絡透明度正在使用中)

我期待這樣的:

  1. 挖在/ proc/$ PID/FD /跟蹤連接X服務器
  2. 跟隨該連接,深入探索/proc/`pidof X`/fd
  3. 挖掘X內部,因爲它應該知道如何將連接映射到窗口。
+0

一般:一點也不。原因是X-Window系統支持固有的網絡連接(即使你不使用它)。我能想到的唯一可行的方法是預期的內部挖掘 - 這可能與x服務器和x服務器不同。 – flolo 2011-04-04 20:04:54

+0

X服務器是Xorg。我想要的解決方案比在非聯網的情況下工作。是不是很明顯,任何Gived系統都有可能? – 2011-04-04 21:38:28

+0

「明顯」的解決方案將涉及醜陋的管道和膠帶,因爲這不是X設計的工作方式。 – 2011-04-05 01:09:48

回答

4

您可以使用xprop -id <windowid> _NET_WM_PID來獲取有問題窗口的PID屬性。您應該知道該窗口的窗口ID,並非所有應用程序都設置了_NET_WM_PID原子。

+0

很少有應用程序正確設置pid,所討論的應用程序(xbmc)沒有。 – 2011-04-04 17:28:11

+0

是的。但這是我知道的唯一可行的方法。 – 2011-04-04 17:32:43

+0

如何找到我自己?如何跟蹤連接到X服務器,然後連接到該連接的xid? – 2011-04-04 19:34:22