Запуск программы при загрузке с помощью systemd в Ubuntu

Запуск программы при загрузке с помощью systemd в Ubuntu

Я хотел бы запустить Java-программу бэкенда при запуске (на самом деле это может быть при входе пользователя в систему) с помощью systemd, которая будет использовать X-сервер для создания окна рендеринга в памяти. Окно рендеринга создается VTK для выполнения объемного рендеринга с помощью GPU, и я получу скриншоты из него.

Ниже приведен мой служебный файл, который я поместил в /etc/systemd/systemкаталог.

[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

после входа через GUI служба не запускается. поэтому я выполняю команду, xhost +чтобы разрешить всем пользователям доступ к отображению и запуску systemctl start myserviceслужбы вручную. Тогда я получаю то, что хочу.

Мне интересно, есть ли способ, чтобы myservice запускался автоматически при входе в систему. И еще один вопрос, нормально ли устанавливать среду на фиксированный номер DISPLAY для всех компьютеров?

Я использую Ubuntu 16.04/18.04.

Связанный контент