Linux

如何通過 xvfb-run 的 VNC 連接到 X 應用程序?

  • December 9, 2016

當我Xvfb直接執行伺服器時,x11vnc可以按照Wikipedia page很好地附加到顯示器。

但是我想通過使用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

正如您在ps輸出中看到的,Xvfb伺服器使用參數執行,-auth後跟臨時文件的名稱。因此,要連接到此伺服器,您需要提供保存在此文件中的 MIT-MAGIC-COOKIE 的副本。通常這是通過在命令環境中簡單地設置 XAUTHORITY 變數來完成的,例如

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

為簡化起見,您的xvfb-run腳本可能會接受一個選項-f,後跟您選擇的用於保存 cookie 的文件的名稱。

引用自:https://unix.stackexchange.com/questions/325883