Включение-выключение ноутбука по crontab’у

В офисе «Магазина правильного чая» ни одно устройство не простаивает даром. Нашлось применение и старенькому нетбуку Lenovo — он исполняет роль музыкального сервера (MPD+ncmpcpp), раздающего потоки в онлайн (секрет куда) и на акустику магазина. 

Стоит себе на шкафу с Lubuntu на борту и отключенным X-сервером, никому не мешает. Только вот крутиться ему во внерабочее время незачем, да и не все сотрудники  умеют по SSH управлять плеером ncmpcpp. Поэтому перед закрытием офиса им приходится лазить на шкаф и варварски выключать нетбук по кнопке. А это нехорошо и некрасиво.

Задача понятная: научить нетбук выключаться и, главное, включаться по расписанию. Конечно, полноценно выключиться не выйдет: нетбуковский BIOS нам такого фишки не предоставляет, поэтому укажем машине хотя бы уходить в сон.

Для этого существует прекрасная утилита rtcwake. Команда простая:

rtcwake -m mem -s 57600

mem указывает, что усыпляем всё кроме ОЗУ, а 16 часов нерабочего времени это как раз 57600 секунд. Остальное можно посмотреть в man’е.

Дальше все тоже просто, прописать команду в cron. Но оказалось, что придется повозиться. Во-первых, rtcwake должен выполняться от пользователя root, а не текущего юзера. Поэтому:

sudo crontab -e

А в самом кроне вышеупомянутая команда не сработает, нужно указывать её полный путь

 00 19 * * * /usr/sbin/rtcwake -m mem -s 57600

Если вдруг по указанному адресу rtcwake и не думал находиться, то всегда есть команда, которая укажет путь истинный.

which rtcwake

Удивительно, но работает.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *