我正在开发一个小型服务器程序,该程序从网络接收数据并执行各种操作。其中一项操作是打开与系统上运行的 X 服务器的连接并模拟按键操作。当我的服务器从 X 内的终端启动时,这很好,但我希望我的程序在系统启动时作为系统服务启动,然后在客户端请求时与 X 通信。
XOpenDisplay(NULL)
我遇到的基本问题是对不是从 X 内部启动的进程的调用失败。据我了解,我无法从 X 外部打开 X 显示器,因此我能想到的最佳解决方法是编写一个单独的程序,该程序在用户登录 X 时启动,等待信号或消息从服务器,然后执行请求的操作。如果此帮助程序未运行或由于某种原因失败,则可以假设服务器可以将错误发送回客户端是完全可以的。
所以问题:我上面描述的是最好的(虽然是混乱的)解决方案,还是有更好的方法?事实上,有没有一种从 X 外部打开 X 显示的方法?谢谢!