linux – 如何通过xvfb-run通过VNC连接到X app?

当我直接运行Xvfb服务器时,x11vnc可以按照Wikipedia page附加到显示器上.

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

这是我的尝试(以葡萄酒探险家为例):

$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 troubleshooting page建议的命令,但没有运气.

如何通过xvfb-run运行X命令,以便x11vnc可以访问它?

解决方法:

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

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

为简化起见,您的xvfb运行脚本可能会接受选项-f,后跟您选择的用于保存cookie的文件的名称.

上一篇:xvfb与x11vnc


下一篇:ubuntu14.04远程软件VNC的安装、设置方法