web-dev-qa-db-ja.com

xvfb-runによるVNC経由でXアプリに接続する方法は?

Xvfbサーバーを直接実行すると、x11vncWikipediaページ のようにディスプレイに正常に接続できます。

ただし、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から表示にアクセスできるようにするにはどうすればよいですか?

3
kenorb

psの出力からわかるように、Xvfbサーバーはパラメーター-authの後に一時ファイルの名前を付けて実行されます。したがって、このサーバーに接続するには、このファイルに保持されているMIT-MAGIC-COOKIEのコピーを提供する必要があります。通常、これは、コマンドの環境でXAUTHORITY変数を設定するだけで実行されます。

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

簡単にするために、xvfb-runスクリプトはオプション-fに続いて、Cookieを保存するために選択したファイルの名前を受け入れる場合があります。

5
meuh