Xvfb
サーバーを直接実行すると、x11vnc
は Wikipediaページ のようにディスプレイに正常に接続できます。
ただし、xvfb-run
を使用してXアプリを実行することで同じことを実現したいと思います。
これが私の試みです(例として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トラブルシューティングページ から提案されたコマンドも試しましたが、うまくいきませんでした。
xvfb-run
からXコマンドを実行して、x11vnc
から表示にアクセスできるようにするにはどうすればよいですか?
ps
の出力からわかるように、Xvfb
サーバーはパラメーター-auth
の後に一時ファイルの名前を付けて実行されます。したがって、このサーバーに接続するには、このファイルに保持されているMIT-MAGIC-COOKIEのコピーを提供する必要があります。通常、これは、コマンドの環境でXAUTHORITY変数を設定するだけで実行されます。
XAUTHORITY=/tmp/xvfb-run.nJKLnF/Xauthority x11vnc ...
簡単にするために、xvfb-run
スクリプトはオプション-f
に続いて、Cookieを保存するために選択したファイルの名前を受け入れる場合があります。