
Eu gostaria de executar um programa de back-end Java na inicialização (na verdade, pode ser no login do usuário) com o systemd, que usaria o servidor X para criar uma janela de renderização na memória. A janela de renderização é criada pelo VTK para renderizar volume com uma GPU, e obterei capturas de tela dela.
a seguir está meu arquivo de serviço que coloquei no /etc/systemd/system
diretório.
[Unit]
Description= myservice
After=mysql.service
[Service]
User=root
Environment=DISPLAY=:0
Restart=always
Type=forking
ExecStart=/root/myservice/startup.sh
ExecStop=/root/myservice/shutdown.sh
[Install]
WantedBy=multi-user.target
depois de fazer login pela GUI, o serviço não é iniciado. então executo o comando xhost +
para permitir que todo o acesso do usuário seja exibido e executado systemctl start myservice
para iniciar o serviço manualmente. Então eu consigo o que quero.
Gostaria de saber se existe alguma maneira de permitir que myservice seja executado automaticamente no login. E outra pergunta, posso definir o ambiente para um número DISPLAY fixo para todos os computadores?
Estou usando o Ubuntu 16.04/18.04.