В офисе «Магазина правильного чая» ни одно устройство не простаивает даром. Нашлось применение и старенькому нетбуку 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
Удивительно, но работает.