Por que x0vncserver não está iniciando na inicialização?

2

Eu tentei fazer o meu tightvncserver iniciar na inicialização no parabola arch Gnu / Linux em uma configuração automática de login da GUI usando o wiki link e criando x0vncserver.service systemd unit seguindo isso e então systemctl enable x0vncserver.service mas quando eu inicializo / reinicializo, não vejo servidor vnc ativo e então checo vejo isso

# systemctl status x0vncserver.service
* x0vncserver.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/x0vncserver.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Sat 2017-07-01 20:42:55 +06; 1min 34s ago
  Process: 302 ExecStart=/usr/bin/sh -c /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/peruvian/.vnc/passwd & (code=exited, status=0/SUCCESS)

Jul 01 20:42:52 sky systemd[1]: Starting Remote desktop service (VNC)...
Jul 01 20:42:55 sky systemd[1]: Started Remote desktop service (VNC).

e meu

# journalctl -xe | grep vnc
-- Subject: Unit x0vncserver.service has begun start-up
-- Unit x0vncserver.service has begun starting up.
-- Subject: Unit x0vncserver.service has finished start-up
-- Unit x0vncserver.service has finished starting up.
Jul 01 20:47:08 sky systemd[1]: x0vncserver.service: Main process exited, code=exited, status=1/FAILURE
Jul 01 20:47:08 sky systemd[1]: x0vncserver.service: Unit entered failed state.
Jul 01 20:47:08 sky systemd[1]: x0vncserver.service: Failed with result 'exit-code'.

Mas se eu executar o comando systemctl start x0vncserver.service ou systemctl restart x0vncserver.service depois de carregar a área de trabalho, ele funcionará sem problemas, pois o # systemctl status x0vncserver.service é exibido

# systemctl status x0vncserver.service
* x0vncserver.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/x0vncserver.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-07-01 20:56:53 +06; 2s ago
  Process: 924 ExecStart=/usr/bin/sh -c /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/peruvian/.vnc/passwd & (code=exited, status=0/SUCCESS)
 Main PID: 925 (x0vncserver)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/x0vncserver.service
           '-925 /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/peruvian/.vnc/passwd

Jul 01 20:56:53 sky systemd[1]: Starting Remote desktop service (VNC)...
Jul 01 20:56:53 sky systemd[1]: Started Remote desktop service (VNC).

e meu default.target é

# systemctl get-default       
graphical.target

Eu acho que o serviço começa mais cedo do que deveria e falha devido à falta de recursos na inicialização.

    
por Pavel Sayekat 01.07.2017 / 17:19

2 respostas

3

Como x0vncserver só será iniciado após o xsession, e como o meu é um ambiente LXDE, a maneira mais fácil é criar um arquivo script.sh como o seguinte

#!/bin/bash
x0vncserver -display :0 -rfbport 5900 -passwordfile ~/.vnc/passwd

e torne-o executável por sudo chmod +x script.sh e adicione uma linha no arquivo ~/.config/lxsession/LXDE/autostart como segue

path_to_the_script_file/script.sh

e o x0vncserver começa quando minha sessão de desktop LXDE é iniciada e é disso que eu preciso.

    
por 09.03.2018 / 16:15
2

Um pouco atrasado, mas também tropeço neste problema.

O problema é que x0vncserver precisa de uma sessão X autenticada para o seu usuário, então você precisa garantir duas coisas:

  1. Seu usuário deve estar configure for autologin
  2. Coloque um sleep no seu comando ExecStart, para que a área de trabalho possa iniciar e fazer login antes que o serviço x0vncserver tente iniciar:

    ExecStart=/usr/bin/sh -c 'sleep 3 && /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/peruvian/.vnc/passwd &'
    

O sono fez o truque para mim e agora meu x0vnc está funcionando.

    
por 21.11.2017 / 09:44