Если я хочу добавить строки в / etc / crontab моей системы, что мне нужно сделать, чтобы они вступили в силу?
Справочная информация:
Я пытаясь настроить компьютер с Ubuntu 13.04, чтобы он автоматически блокировал / разблокировал монитор в течение рабочего дня (он висит на стене).
Я сделал это, добавив следующее в мой / etc / crontab:
00 18 * * mon-fri myuser export DISPLAY:=0 && gnome-screensaver-command -a
00 18 * * mon-fri myuser export DISPLAY:=0 && xset dpms force standby
00 08 * * mon-fri myuser export DISPLAY:=0 && gnome-screensaver-command -d
00 08 * * mon-fri myuser export DISPLAY:=0 && xset dpms force on
Отдельные команды работают нормально, но я пытаюсь проверить записи в crontab, установив минуты / день на следующую минуту. Например, в 13:26 я установил первые два столбца на 27 13 и подождал, пока не наступит следующая минута. Но команды, похоже, не выполняются. Я также попытался запустить sudo crontab /etc/crontab
, но, похоже, это не помогло.
Во-первых, вам, вероятно, нужно указать путь ко всем командам. Например:
00 08 * * mon-fri DISPLAY=:0 /usr/bin/xset dpms force on
В качестве альтернативы, вы можете поместить строку PATH вверху файла crontab. См. man 5 crontab
.
Во-вторых, система должна отправить вам вывод cron по электронной почте. Проверьте это на наличие сообщений об ошибках.
После дальнейшей отладки я определил, что запуск sudo crontab /etc/crontab
фактически перезагружает crontab, и мои команды выполняются. Похоже, это просто проблема с конкретными командами. Я смог определить это, добавив echo "test" >> /home/myuser/test.txt &&
в начало команды.