Esse arquivo systemd
Unit funcionou para mim:
[Unit]
Description=Start TigerVNC Server at startup
After=syslog.target network.target
[Service]
Type=forking
User=user
PAMName=login
PIDFile=/home/user/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -depth 24 -geometry 1920x1080 -nolisten tcp -localhost
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Certifique-se de substituir user
pelo seu nome de usuário real nas linhas correspondentes a User
e PIDFile
em [Service]
.
- Salvei este arquivo como
[email protected]
em/etc/systemd/system/
- Ativado com
systemctl enable [email protected]
, que cria um arquivo de link simbólico[email protected]
em/etc/systemd/system/multi-user.target.wants/
apontando para[email protected]
in/etc/systemd/system/
- Iniciou o serviço com
systemctl start vncserver@4
Para adaptá-lo às suas necessidades, use seu número de display preferido em vez de 4 (como eu fiz) ao habilitar. Além disso, verifique se você inicializou o vncserver fora desse arquivo de unidade de serviço antes de iniciar o serviço. Isso garantiria a senha e os arquivos necessários ( xstartup
, etc.) serão criados. A maneira mais fácil de fazer isso seria executar o comando contra ExecStart
under [Service]
no arquivo Unit. Para o meu caso, isso se traduz em:
vncserver :4 -depth 24 -geometry 1920x1080 -nolisten tcp -localhost
Fonte: eu adaptei o arquivo de unidade de este guia .