
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/system
el 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 myservice
para 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.