Se você quiser, pode criar um arquivo systemd .service
que faça a mesma coisa. Um arquivo systemd .service
básico para o comando acima pode ter a seguinte aparência:
[Unit]
Description=Start VNC server
Requires=lightdm.service
After=lightdm.service
[Service]
ExecStart=/usr/bin/x11vnc -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -noxrecord -noxfixes -noxdamage -forever
[Install]
WantedBy=graphical.target
Coisas a serem observadas:
- Como esse serviço depende do início do lightdm, adicionei um
Requires=lightdm.service
. Isso significa que se este serviço for solicitado para iniciar, entãolightdm.service
também será solicitado a iniciar, mas selightdm.service
falhar ao iniciar, este serviço não será solicitado a iniciar. Além disso,After=lightdm.service
é necessário para que este serviço seja iniciado após o término do 'lightdm.service. - O comando que está sendo executado não tem
-bg
especificado. No systemd, é preferível que os serviços permaneçam em primeiro plano, para que o systemd saiba que eles estão em execução. Note que é possível especificar um arquivo PID para um serviço que entra em segundo plano. -
WantedBy=graphical.target
especifica que, como parte da inicialização da GUI, isso também deve ser iniciado.
Para instalar esse arquivo para que o serviço seja executado como raiz, adicione esse arquivo em /etc/systemd/system
. Em seguida, execute sudo systemctl enable <filename>
(onde <filename>
é o nome do arquivo de serviço em /etc/systemd/system
). Um link simbólico deve ser criado em /etc/systemd/system/graphical.target.wants/
. Após a reinicialização, quando você executar systemctl status <filename>
, deverá ver que o serviço é reconhecido e ainda não foi iniciado.
Observe que /etc/systemd/system/
é destinado a serviços em todo o sistema que o administrador do sistema (você) adiciona. /lib/systemd/system/
é destinado a serviços em todo o sistema instalados por pacotes. Você não precisa fazer um symlink para /lib/systemd/system/
para o serviço carregar. A tabela abaixo (tirada da systemd.unit
manpage) descreve a localização de cada localização no que diz respeito aos serviços do sistema (existem caminhos separados para os serviços do usuário):
┌────────────────────┬─────────────────────────────┐
│Path │ Description │
├────────────────────┼─────────────────────────────┤
│/etc/systemd/system │ Local configuration │
├────────────────────┼─────────────────────────────┤
│/run/systemd/system │ Runtime units │
├────────────────────┼─────────────────────────────┤
│/lib/systemd/system │ Units of installed packages │
└────────────────────┴─────────────────────────────┘