如何通过 xvfb-run 的 VNC 连接到 X 应用程序?

如何通过 xvfb-run 的 VNC 连接到 X 应用程序?

当我Xvfb直接运行服务器时,x11vnc可以按照以下方式附加到显示器维基百科页面

不过,我想通过使用 运行 X 应用程序来实现相同的目标xvfb-run

这是我的尝试(以运行wine explorer为例):

$ xvfb-run -l --server-args="-screen 0 1024x768x24" wine explorer
$ ps x | grep Xvfb
19536 pts/2    Sl     0:00 Xvfb :99 -screen 0 1024x768x24 -auth /tmp/xvfb-run.nJKLnF/Xauthority

但是,当我尝试运行时x11vnc它失败了:

$ x11vnc -display :99.0 -usepw -forever -autoport 5900
24/11/2016 22:51:29 XOpenDisplay(":99.0") failed.
24/11/2016 22:51:29 Trying again with XAUTHLOCALHOSTNAME=localhost ...
No protocol specified

24/11/2016 22:51:29 ***************************************
24/11/2016 22:51:29 *** XOpenDisplay failed (:99.0)

*** x11vnc was unable to open the X DISPLAY: ":99.0", it cannot continue.
*** There may be "Xlib:" error messages above with details about the failure.

我还尝试了建议的命令x11vnc 故障排除页面,但没有运气。

如何通过运行 X 命令xvfb-run以便可以通过 访问它的显示x11vnc

答案1

正如您在输出中看到的psXvfb服务器运行时使用参数-auth,后跟临时文件的名称。因此,要连接到此服务器,您需要提供此文件中保存的 MIT-MAGIC-COOKIE 的副本。通常,这是通过简单地在命令环境中设置 XAUTHORITY 变量来完成的,例如

XAUTHORITY=/tmp/xvfb-run.nJKLnF/Xauthority x11vnc ...

为了简化,您的xvfb-run脚本可能接受一个选项-f,后跟您选择的用于保存 cookie 的文件名。

相关内容