Crontab не выполняется правильно

Я хочу, чтобы мой сценарий checkbat.sh показал xmessage, если состояние батареи является слишком низким. Выполнение сценария в терминале через

bash /usr/local/bin/checkbat.sh

работает просто великолепно. Для добавления его к cronjobs, я сначала сделал

sudo crontab -e

и затем добавил следующую строку:

*/5 * * * * bash /usr/local/bin/checkbat.sh

Который должен выполнять сценарий каждые пять минут. Все же ничего не происходит. Какие-либо идеи?

2
задан 20 September 2016 в 19:08

3 ответа

Проблема с запуском X программ из сценариев состоит в том, что они пропускают важные переменные среды, как который дисплей использовать.

Удостоверяются, что, наверху сценария Вы звоните в свой crontab, Вы установили X переменных дисплея:

export DISPLAY=':0'
export XAUTHORITY='/home/your-user-here/.Xauthority'

Ваши X дисплеев могут отличаться; можно проверить выполнение echo $DISPLAY в терминале на X сессиях.

2
ответ дан 2 December 2019 в 01:43

Как Вы знаете, что это не выполняется? Можно ли показать нам сценарий?

наиболее распространенная проблема состоит в том что Ваши выводы сценария к консоли. В кроне не существует консоль. Удостоверьтесь, что Ваш сценарий пишет в файл или непосредственно в консольное устройство.

На консоли, где Вы хотите видеть сообщение - выполненный: tty, Который покажет Вам устройство, которое Вы используете на том терминальном сеансе. Затем используйте то имя устройства как это:/usr/bin/myscript.sh>/dev/tty 2> & 1, Который продвинет весь вывод tty в то устройство и также продвинет весь вывод ошибок к тому же устройству. ПРЕДУПРЕЖДЕНИЕ: Если Вы открываете и закрыли tty сеансы, Вы не можете полагаться на этот метод. Большинство заданий крона разработано для записи непосредственно в текстовые файлы, и те текстовые файлы контролируются так или иначе

2
ответ дан 2 December 2019 в 01:43

заданиям crontab не настраивали среду способ, которым делает интерактивное задание. Необходимо удостовериться в сценарии, что Вы не полагаетесь на переменные среды, которые не определены.

2
ответ дан 2 December 2019 в 01:43

Другие вопросы по тегам:

Похожие вопросы: