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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.