如何在X11中跟踪相关窗口?

时间:2008-09-13 22:59:54

标签: x11

不幸的是,我的问题并不像追踪同一过程创建的两个窗口一样简单。

这就是我所拥有的:

  • 两个用户Jack和Jim远程登录到同一个Unix系统并运行X服务器
  • Jack运行一个应用程序'AwesomeApp',它在X窗口中打开一个GUI
  • Jim运行此应用程序的另一个实例,打开自己的GUI窗口
  • 现在,Jack运行一个主管应用程序,它将与拥有第一个窗口的进程(例如'AwesomeApp')进行通信,因为它是'AwesomeApp'的HIS实例
  • 他的主管实例如何找到'AwesomeApp'窗口的哪个实例是他自己的?

Aaaahhhh ......在每个用户的基础上查找是的,这可行。 只要我告诉用户他们无法使用来自两个不同位置的相同用户帐户登录。

1 个答案:

答案 0 :(得分:1)

您可以使用pgrep获取Jack的AwesomeApp实例的进程ID:

pgrep -u Jack AwesomeApp


因此,如果从shell脚本启动supervisor应用程序,则可以执行以下操作:

AWESOME_ID=`pgrep -u $USER AwesomeApp 2>/dev/null`

# run the supervisor application and pass the process id as the argument
supervisor $AWESOME_ID


或者,如果您不想使用pgrep或ps等外部程序,您可以尝试直接在/proc中查找该过程。