Я написал Java-программу для запуска различных программ в Linux с подключенным API. Я хочу, чтобы эта Java-программа запускалась в фоновом режиме как мой пользователь и запускалась автоматически при загрузке системы. Я попытался запустить файл JAR из службы systemd, но при попытке запуска приложений с графическим интерфейсом не удается.
Я понимаю, что для запуска приложения с графическим интерфейсом необходимо установить две переменные среды: DISPLAY и XAUTHORITY
Я попытался установить их в служебном файле systemd, но процесс Java по-прежнему не может запустить любую программу с графическим интерфейсом. Нет проблем при запуске приложений с графическим интерфейсом при запуске файла JAR из терминала.
Можно ли решить эту проблему с помощью systemd или любого другого фонового демона?
Вот как выглядит мой сервисный файл:
[Unit]
Description=Application API
After=network.target
[Service]
User=me
Environment=DISPLAY=:0
Environment=XAUTHORITY=/home/me/.Xauthority
ExecStart=/usr/bin/java -jar /usr/local/bin/windows-application-launcher.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
Обновление: запуск только после входа в среду рабочего стола.