当我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
正如您在输出中看到的ps
,Xvfb
服务器运行时使用参数-auth
,后跟临时文件的名称。因此,要连接到此服务器,您需要提供此文件中保存的 MIT-MAGIC-COOKIE 的副本。通常,这是通过简单地在命令环境中设置 XAUTHORITY 变量来完成的,例如
XAUTHORITY=/tmp/xvfb-run.nJKLnF/Xauthority x11vnc ...
为了简化,您的xvfb-run
脚本可能接受一个选项-f
,后跟您选择的用于保存 cookie 的文件名。