x11vnc no Ubuntu 16.04 Gnome com systemd

1

Estou tendo problemas para iniciar o serviço x11vnc no servidor Ubuntu 16.04 Gnome. Ele costumava funcionar bem em 14.04. Não tenho certeza se está relacionado ao próprio x11vnc ou ao systemd.

Aqui está o arquivo do serviço systemd:

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -o /var/log/x11vnc.log

[Install]
WantedBy=multi-user.target

O /etc/x11vnc.pass está presente e foi gerado usando x11vnc -storepasswd /etc/x11vnc.passwd

Após a reinicialização, o x11vnc é iniciado, mas não tem sorte conectar-se a ele com o vnc, e os arquivos x11vnc.log informam:

03/05/2017 16:12:19 passing arg to libvncserver: -rfbauth
03/05/2017 16:12:19 passing arg to libvncserver: /etc/x11vnc.pass
03/05/2017 16:12:19 passing arg to libvncserver: -rfbport
03/05/2017 16:12:19 passing arg to libvncserver: 5900
03/05/2017 16:12:19 x11vnc version: 0.9.13 lastmod: 2011-08-10  pid: 30259
xauth:  unable to generate an authority file name
03/05/2017 16:12:19 -auth guess: failed for display='unset'
03/05/2017 16:12:19 -auth guess: since we are root, retrying with FD_XDM=1
03/05/2017 16:12:19 -auth guess: failed for display='unset'

Para validar que o x11vnc funciona bem, eu simplesmente executo manualmente no servidor:

x11vnc -rfbauth /etc/x11vnc.passwd

e com isso eu posso conectar com sucesso com vnc. Mas como posso iniciá-lo automaticamente?

    
por M-Jack 03.05.2017 / 20:33

1 resposta

1

Parece que o script do Upstart foi executado quando um usuário efetuou login . Teria então variáveis de ambiente de acesso relacionadas ao login e executadas como usuário.

A tradução do systemd que você tem é executada como root em segundo plano, não no contexto de uma sessão de login.

Se você quiser que isso comece quando um determinado usuário fizer o login, considere usar o autostart do Ubuntu Unity recurso em vez disso.

Na minha experiência, o systemd não é adequado para iniciar aplicativos do usuário durante um processo de login gráfico.

    
por 04.05.2017 / 00:53