Я собираюсь каждый вечер переводить компьютер в спящий режим, чтобы на следующее утро он снова проснулся. Я обнаружил, что rtcwake будет служить моей цели. Однако положить его в crontab ничего не дает. Ниже приведена моя запись в crontab для «root» пользователя
0 1 * * * rtcwake -m disk -s 25200
Я добавил ее, используя 'sudo crontab -e'. Системный журнал показывает, что он выполнил команду, но компьютер не спит. Если я запускаю команду на терминале напрямую, компьютер сразу же переводится в спящий режим, как и ожидалось. Поэтому я не думаю, что есть какие-либо проблемы с ACPI.
У кого-нибудь есть подсказка? Я нахожусь на Ubuntu 14.04
Хорошо, я думаю, что нашел решение. При добавлении sudo, прежде чем rtcwake решает проблему.
у меня теперь однако есть следующий вопрос: Почему crontab корня нужен sudo для выполнения команды. Разве это уже не работающий под корнем?
Я знаю, что это - два года слишком поздно, но у меня была та же проблема, и хотят дать мое решение любому, у кого могла бы быть эта проблема в будущем.
Для пробуждения моей машины каждый день в 6:00 я настроил cronjob использование rtcwake
. Моя проблема была, однако, что даже при том, что cronjob работал, он не поставил будильник. Я действительно редактировал пользователя root crontab
с sudo crontab -e
.
решение состояло в том, чтобы использовать полный путь rtcwake
в crontab, не только команде. Чтобы сделать это, сначала используйте which rtcwake
, который возвратит полный путь команды (в моем случае, который был /usr/sbin/rtcwake
), и используйте это в cronjob.
Мой cronjob теперь похож на это: 0 12 * * * /usr/sbin/rtcwake -m no -t $(date +\%s -d 'tomorrow 0600')
Как примечание стороны, если Вы используете date
как я, необходимо выйти из знака процента.
Я сделал некоторое расследование на этом, если Ваш сделал "sudo crontab-e" с rtcwake в таблице без sudo, Вы получите сообщение об ошибке:
/home/leo/autojob: line 4: rtcwake: command not found
кажется, что, хотя "sudo crontab-e" выполняется в соответствии с корневой учетной записью, она не может найти правильный путь команды. Существует некоторое другое сообщение, говорит, что необходимо поместить ПУТЬ перед crontab и т.д., пока Вы помещаете sudo перед своей командой rtcwake, это кажется смочь найти команду снова.
# m h dom mon dow command
40 14 * * * sudo /home/leo/autojob >> /home/leo/cron_log 2>&1
вышеупомянутая конфигурация в sudo crontab теперь работает, "автозадание" является сценарием, содержит rtcwake.