Как заставить 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
Другие вопросы по тегам