Lanzar un programa al iniciar con systemd en Ubuntu

Lanzar un programa al iniciar con systemd en Ubuntu

Me gustaría ejecutar un programa backend de Java al inicio (de hecho, puede ser al iniciar sesión el usuario) con systemd, que usaría el servidor X para crear una ventana de renderizado en la memoria. VTK crea la ventana de renderizado para realizar renderizado de volumen con una GPU, y obtendré capturas de pantalla de ella.

El siguiente es mi archivo de servicio que puse en /etc/systemd/systemel directorio.

[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

Después de iniciar sesión mediante GUI, el servicio no se inicia. entonces ejecuto el comando xhost +para permitir que todos los usuarios accedan a la pantalla y ejecuto systemctl start myservicepara iniciar el servicio manualmente. Entonces consigo lo que quiero.

Me pregunto si hay alguna forma de permitir que myservice se ejecute automáticamente al iniciar sesión. Y otra pregunta, ¿está bien configurar el entorno en un número de PANTALLA fijo para todas las computadoras?

Estoy usando Ubuntu 16.04/18.04.

información relacionada