Execute o aplicativo GUI com o systemd antes do login (após o X ser iniciado)?

0

Eu estou tentando executar o servidor TightVNC em uma máquina Ubuntu usando o systemd. O arquivo de unidade (/etc/systemd/system/tiger.service) se parece com isto:

[Unit]
Description=Tiger VNC server
After=display-manager.service

[Service]
Type=simple
Environment=XAUTHORITY=/home/myusername/.Xauthority
ExecStart=/usr/bin/sudo -H -u myusername bash -c '/usr/bin/x0vncserver -rfbport 5901 -PasswordFile path-to-passwd-file -PollingCycle 30 -AlwaysShared -display :0'

Não consigo me conectar ao servidor VNC e systemctl status tiger.service retorna:

Jun 01 03:12:49 ubuntu systemd[1]: Started Tiger VNC server.
Jun 01 03:12:49 ubuntu sudo[958]:     root : TTY=unknown ; PWD=/ ; USER=myusername ; COMMAND=/bin/bash -c /opt/rmm-agent/x0vncserver -rfbport 5901 -PasswordFile /opt/rmm-agent
Jun 01 03:12:49 ubuntu sudo[958]: pam_unix(sudo:session): session opened for user myusername by (uid=0)
Jun 01 03:12:49 ubuntu sudo[958]: /usr/bin/x0vncserver: unable to open display ":0"
Jun 01 03:12:49 ubuntu systemd[1]: tiger.service: Main process exited, code=exited, status=1/FAILURE
Jun 01 03:12:49 ubuntu systemd[1]: tiger.service: Unit entered failed state.
Jun 01 03:12:49 ubuntu systemd[1]: tiger.service: Failed with result 'exit-code'.

Se eu começar com systemctl start tiger.service a partir de um console tudo corre bem, eu posso conectar ao servidor VNC.

eu tentei Requires= ao invés de After= e graphical.target ao invés de display-manager.service. Eu recebo o mesmo unable to open display ":0" em todos os casos.

user3671607
fonte
1
ExecStart=sudo? Você sabe que há um User= definindo, certo?
grawity
Além disso, qual gerenciador de exibição você está usando? (Eu estou supondo LightDM do Ubuntu)
grawity
Eu estou usando LightDM, sim, mas isso deve funcionar em outras distros também. Atualmente usando o Ubuntu para testes porque eu estou mais confortável com isso.
user3671607
O que você está realmente tentando alcançar? Criando um servidor de terminal? Ou permitindo acesso à sua sessão de console?
Daniel B

Respostas:

0

Pode ser que não haja XAuthority em seu diretório de usuários até que você tenha efetuado login. Há algumas informações sobre onde procurar no site de documentação x11vnc. O XAuthority existe apenas para o root, em um diretório que varia com o gerenciador de exibição e com a versão do Ubuntu, mas existem algumas boas pistas lá.

Atualmente estou tentando obter esse servidor vnc para iniciar automaticamente no Kubuntu 16.04, e meu arquivo de autoridade está em:

/var/run/lightdm/root/:0
Eoin McMahon
fonte