У меня есть пара скриптов, которые я запланировал запустить в cron некоторое время. Примерно неделю назад они перестали работать, насколько показала (очень простая) регистрация, и я также заметил, что мои обои больше не вращались.
josh@sirius:~$ crontab -l
# m h dom mon dow command
0 * * * * /bin/bash /home/josh/bin/rotate-wallpaper
*/30 * * * * /bin/bash /home/josh/bin/download-programmes
* * * * * echo "I ran" > /home/josh/cronstamp
Ни одна из первых двух команд не выполняется, но файл ~/cronstamp
создается и записывается в соответствии с ожиданиями.
Похоже, ваши скрипты не работают. Я бы предложил добавить 2>&1 > /home/josh/cronlog
в конце ваших команд, чтобы позже вы могли проверить, что пошло не так
Пример:
# m h dom mon dow command
0 * * * * /bin/bash /home/josh/bin/rotate-wallpaper 2>&1 > /home/josh/cronlog
*/30 * * * * /bin/bash /home/josh/bin/download-programmes 2>&1 > /home/josh/cronlog
Попробуйте перезагрузить задания cron:
sudo service reload
доступны следующие опции:
sudo service {start|stop|status|try-restart|restart|force-reload|reload|probe}
Ваши сценарии зависят от элементов графического интерфейса (наверное, так как вы говорите об обоях)? Тогда, я думаю, это не сработает, так как пропускает некоторые переменные окружения в Cron, в отличие от запуска в окне терминала.
Если вам просто нужен $DISPLAY
, и вы не запускаете несколько X-окон, установите его в своем сценарии следующим образом (сверху):
DISPLAY=:0
Возможно, больше не хватает. Попробуйте продолжить отладку и запишите все выходные данные stdout
и stderr
из всех команд в ваших скриптах, как объясняет @zakkak.