Como se conectar ao aplicativo X via VNC, que foi executado pelo xvfb?

2

Quando eu executo o Xvfb server diretamente, x11vnc pode anexar à exibição de acordo com a página da Wikipedia .

No entanto, eu gostaria de alcançar o mesmo executando o aplicativo X usando xvfb-run .

Aqui está minha tentativa (para executar wine explorer como exemplo):

$ 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

No entanto, quando tento executar x11vnc , ele falha:

$ 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.

Eu também testei o comando sugerido na página de solução de problemas x11vnc , mas sem sorte.

Como posso executar o comando X via xvfb-run para que a exibição possa ser acessada por x11vnc ?

    
por kenorb 24.11.2016 / 23:55

1 resposta

3

Como você pode ver na sua saída ps , o servidor Xvfb é executado com o parâmetro -auth seguido pelo nome de um arquivo temporário. Para se conectar a este servidor, você precisa fornecer uma cópia do MIT-MAGIC-COOKIE que é mantido neste arquivo. Geralmente isso é feito simplesmente configurando a variável XAUTHORITY no ambiente do comando, por exemplo

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

Para simplificar, seu script xvfb-run pode aceitar uma opção -f seguida do nome de um arquivo de sua escolha para salvar o cookie.

    
por 25.11.2016 / 21:10