Как заставить cron запускать приложение с графическим интерфейсом Java?
У меня есть скрипт, который запускает приложение с графическим интерфейсом Java, используя "java -jar app.jar". Я добавил скрипт в crontab для запуска каждую минуту, проверяю список процессов, если приложение запущено. Если это не так, следует запустить приложение.
Тем не менее, он только запускает процесс, но не графический интерфейс. Я добавил "export DISPLAY=:0" в начало скрипта, но это не помогло.
Как заставить cron запускать программу так, как будто я сам ее запускаю?
Спасибо
2 ответа
На этой странице объясняется, как запустить приложение с графическим интерфейсом с помощью cron:
Чтобы запустить приложение с графическим интерфейсом с помощью cron в разделе команд, замените часть имени команды следующим образом
env DISPLAY=:0 gui_appname
env DISPLAY=:0
часть скажет cron использовать текущий дисплей (рабочий стол) для программы "gui_appname".Например, чтобы запустить клиент rtorrent(популярный торрент-клиент на основе терминала в Linux), crontab выглядит так
# m h dom mon dow command 47 09 18 11 * env DISPLAY=:0 gnome-terminal -e rtorrent
Для полноты картины и вопроса от @nanoman в комментариях вы можете легко связать cron с файлом .sh, который запускает ваше Java-приложение, например, так:
@reboot sleep 15; env DISPLAY=:0 /path/to/.sh
со сценарием, который затем запускает, в моем случае, приложение JavaFX на моем сенсорном экране.
#!/bin/sh
java --your-arguments -jar /path/to/jar/file