不幸的是,我的问题并不简单,因为跟踪两个窗口创造的同样的过程。

这里是我有什么:

  • 两个用户,杰克,吉姆是远程登录在相同的Unix系统和运行X服务器
  • 杰克运行的应用程序,'AwesomeApp',这打开了一个GUI在X窗口
  • 吉姆运行的另一个实例,这个应用程序,开他自己的GUI窗口
  • 现在,杰克运行一个主管的应用程序,这将与该进程拥有第一窗口(例如'AwesomeApp'),因为这是他的实例'AwesomeApp'
  • 怎么可能他实例的主管发现,其实例'AwesomeApp'窗口是他自己?

Aaaahhhh...看起来对每个用户基础是可能的工作。只要我告诉用户他们无法登录使用相同的用户账户从两个不同的地方。

有帮助吗?

解决方案

你可以使用 pgrep 得到这一进程ID杰克的实例AwesomeApp:

pgrep -u Jack AwesomeApp


所以如果你启动监督员的应用程序从一个壳脚本,你可以做一些事情如下:

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 直接。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top