Criando o serviço do sistema x11vnc

1

SO: GNU / Linux Debian 9 com Cinnamon DE.

Desde que conseguimos VNC no servidor Debian em execução , graças a GAD3R novamente, é hora de fazer do VNC um serviço regular.

Eu quero que seja executado o tempo todo, desde a inicialização, sem ter que SSH para servidor, durante a execução:

x11vnc -rfbauth ~/.vnc/passwd

Além disso, não quero executar uma sessão separada do Cinnamon, quero ver diretamente o que está na tela principal ou o nome que você quiser e manipular com essa sessão ao vivo.

    
por Vlastimil 03.11.2017 / 04:47

2 respostas

1

Primeiro, pode ser uma boa ideia copiar o arquivo de senha em /etc/ , algo como:

sudo cp ~/.vnc/passwd /etc/vnc.passwd

Isso também garante a propriedade de root e seu rw de acesso, conforme confirmado por:

$ ll /etc/vnc.passwd

-rw------- 1 root root 8 Nov  3 04:00 /etc/vnc.passwd

Em segundo lugar, temos que criar o arquivo de serviço:

sudo nano /lib/systemd/system/vnc.service

enquanto a solução mais simples que surgi é que ele contenha:

[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/vnc.passwd -rfbport 5900 -shared

[Install]
WantedBy=multi-user.target

Note que, embora seja de longe o arquivo de serviço mais simples, ele não pode ter suporte para parar ou reiniciar, eu mesmo preciso descobrir isso ainda.

Aviso: a página de manual é bastante demorada, e talvez eu tenha feito algo sério, por exemplo, erro de segurança aqui. Use por sua conta e risco.

sudo systemctl enable vnc.service
sudo systemctl daemon-reload

e você pode simplesmente reiniciar a máquina.

Como uma nota lateral, no lado do cliente, talvez você queira copiar o arquivo de senhas do servidor para não inserir uma senha toda vez, conectar-se e definir algum alias semelhante a:

alias vnc-server='(vncviewer 192.168.0.xxx:5900 -passwd /home/UserName/.vnc/server.passwd > /dev/null 2>&1 &)'

para não inundar seu terminal.

    
por 03.11.2017 / 04:47
1

Semelhante à solução do próprio Vlastimil, mas com alguns outros detalhes: (de Servidor VNC para Cinnamon com systemd )

Crie o arquivo /etc/systemd/system/x11vnc.service :

[Unit]Description=VNC Server for X11
Requires=display-manager.service

[Service]
ExecStart=/usr/bin/x11vnc -display :0 -rfbauth /etc/x11vnc.pwd -shared -forever -o /var/log/x11vnc.log
ExecStop=/usr/bin/x11vnc -R stop
Restart=on-failure
RestartSec=2

Defina a senha do VNC (substitua MY_PASSWORD)

x11vnc -storepasswd MY_PASSWORD /etc/x11vnc.pwd

Finalmente:

systemctl daemon-reload
systemctl enable x11vnc
systemctl start x11vnc
    
por 26.10.2018 / 17:23