Как настроить автоматическое пробуждение Linux‑ПК с помощью rtcwake
Кратко: rtcwake позволяет поставить Linux‑машину в сон или гибернацию и автоматически пробудить её по таймеру. Команда простая, но требует прав root и внимания к настройкам аппаратных часов и совместимости драйверов.

Быстрые ссылки
- Использование rtcwake
- Типы приостановки
- Через секунды или конкретное время
- Дополнительные советы
- Ограничения и когда это не сработает
Использование rtcwake
Команда rtcwake требует прав root. На Ubuntu и производных используйте sudo. На дистрибутивах без sudo войдите как root через su.
Базовый синтаксис прост:
sudo rtcwake -m <тип_приостановки> -s <секунды>Пример: приостановить систему на диск (гибернация) и разбудить через 60 секунд:
sudo rtcwake -m disk -s 60Это удобно, если вы хотите, чтобы компьютер выполнял работу в определённое время, но не был включён всё время. Например, поставить ПК в сон на ночь и разбудить за полчаса до вашего подъёма для загрузки обновлений или бэкапов.
Важно: некоторые ноутбуки и платы могут по‑разному обрабатывать команды питания. Тестируйте команды в безопасной среде до постановки в продуктив.

Типы приостановки
Ключ -m принимает следующие значения:
- standby – минимальная экономия энергии. Возврат к работе очень быстрый. По умолчанию, если не указывать -m.
- mem – suspend to RAM. Значительная экономия энергии: большинство устройств уходит в низкое энергопотребление, содержимое RAM сохраняется.
- disk – suspend to disk (гибернация). Содержимое памяти записывается на диск, система выключается. При срабатывании таймера машина включится и восстановит состояние.
- off – полностью выключить компьютер. Восстановление из off неофициально поддерживается ACPI, но часто работает.
- no – не переводить систему в сон немедленно, только установить время пробуждения. Удобно, если вы планируете заснуть вручную позже.
Выбирайте режим в зависимости от цели: для кратких пауз — mem, для длительных — disk.
Секунды или конкретное время
Опция -s ожидает число секунд в будущем. Примеры:
- -s 60 — пробудить через 60 секунд
- -s 3600 — пробудить через час
Опция -t позволяет задать точное время в виде количества секунд с начала эпохи Unix (1970‑01‑01 00:00:00 UTC). Чтобы получить это число удобно, комбинируют с командой date.
Ключи -l и -u определяют, как трактовать аппаратные часы:
- -l — аппаратные часы настроены в локальном времени
- -u — аппаратные часы настроены в UTC
Часто дистрибутивы ставят аппаратные часы в UTC и конвертируют их в локальное время.
Пример: разбудить компьютер завтра в 06:30, но не переводить его в сон прямо сейчас (аппаратные часы в локальном времени):
sudo rtcwake -m no -l -t $(date +%s -d 'tomorrow 06:30')
Дополнительные советы и сценарии использования
- Запуск команды после пробуждения: используйте оператор &&. Пример: приостановить в RAM, разбудить через 2 минуты и запустить Firefox:
rtcwake -m mem -s 120 && firefoxАвтоматизация через cron: можно в cron поставить команду, которая просто установит время пробуждения (rtcwake -m no). Например, запускать в 22:00 команду, которая установит пробуждение через 8 часов для подъёма в 06:00.
Скрипты и systemd: если вам нужна более сложная логика (логирование, проверки сетевых интерфейсов, последовательность задач), оберните rtcwake в shell‑скрипт или systemd‑таймер.
Когда это не сработает
- Если батарейка CMOS у вас умирает, аппаратные часы не сохраняют время. Тогда таймер пробуждения может не сработать.
- Если ядро Linux или драйверы не поддерживают sleep/hibernate для конкретного оборудования, режимы mem/disk могут быть недоступны или приводить к зависанию.
- На некоторых ноутбуках автоматическое пробуждение может привести к перегреву или расходу батареи в сумке. Будьте осторожны с ноутбуками.
Альтернативные подходы
- Wake-on-LAN (WOL): пробуждает компьютер по сетевому пакету. Подходит для серверов и настольных машин в сети. Требует поддержки на уровне BIOS/UEFI и сетевой карты.
- BIOS/UEFI‑таймеры: некоторые прошивки позволяют задать расписание прямо в BIOS. Удобно, если операционная система не поддерживает wake‑timer.
- systemd‑suspend + systemd timers: для более интегрированного управления и логирования используйте сервисы systemd.
Ментальные модели и советы по выбору режима
- Если нужно быстро вернуться к работе — выбирайте mem.
- Если требуется полное выключение с минимальным энергопотреблением — выбирайте disk или off.
- Если вы хотите только установить напоминание о пробуждении, но решать, когда заснуть, вручную — используйте no.
Чек‑лист для разных ролей
Администратор:
- Проверить поддержку ACPI в BIOS/UEFI.
- Убедиться, что аппаратные часы настроены правильно (UTC vs локальное время).
- Протестировать —m mem и —m disk на тестовой машине.
Домашний пользователь:
- Проверить состояние батарейки CMOS, если часы сбиваются.
- Тестировать в течение нескольких циклов до применения в регулярных задачах.
- Избегать автопробуждения в закрытой сумке или при высокой температуре.
Разработчик/скриптер:
- Обернуть rtcwake в скрипт с логированием и проверками ошибок.
- Использовать systemd timers для надёжного планирования.
Быстрая методика внедрения (шаблон)
- Определите цель: загрузка обновлений, резервное копирование, подготовка среды.
- Выберите режим (-m). Для теста используйте mem.
- Проведите ручный прогон: rtcwake -m mem -s 120.
- Проверьте логи (journalctl) и корректность восстановления.
- Автоматизируйте через cron или systemd.
Полезные сниппеты и шаблоны
Установить пробуждение на 6:00 завтра и сразу лечь в сон:
sudo rtcwake -m mem -l -t $(date +%s -d 'tomorrow 06:00')
sudo rtcwake -m mem -s 28800Только установить время пробуждения без немедленного сна:
sudo rtcwake -m no -l -t $(date +%s -d 'tomorrow 06:00')Интеграция с cron (пример для crontab -e, запускать в 22:00):
0 22 * * * /usr/bin/sudo /usr/sbin/rtcwake -m no -l -t $(date +\%s -d 'tomorrow 06:00')Таблица совместимости и проверка перед применением
Проверьте следующие элементы перед массовым использованием:
- BIOS/UEFI: поддерживает RTC wake? (включить функцию в настройках)
- Настройка часов: аппаратные часы в UTC или локальном времени? (timedatectl)
- Драйверы: поддерживает ли ваше ядро sleep/hibernate?
- Аппаратный блок питания и батарея: нет ли известных багов с пробуждением?
Критерии приёмки
- Машина корректно уходит в выбранный режим.
- Машина пробуждается в заданное время и восстанавливает предыдущую сессию.
- После пробуждения запускаются необходимые сервисы/команды.
- Нет повторных сбоев или зависаний при циклических тестах.
Примеры ошибок и способы диагностики
- Не просыпается: проверьте /sys/class/rtc/rtc0/wakealarm и наличие установленного таймера.
- Таймер установлен, но машина не включилась: проверьте CMOS‑батарею и настройки BIOS.
- Система зависает при восстановлении: посмотрите journalctl и dmesg, возможно, проблема с драйверами.
Риски и меры предосторожности
- Риск перегрева ноутбука в сумке — не используйте автопробуждение для портативных устройств без надёжного охлаждения.
- Возможный разряд батареи — для длительных тестов держите устройство подключённым к питанию.
- Непредвиденные зависания — прежде чем запускать в критичных сценариях, проводите длительные тесты.
Частые вопросы
Нужны ли права root?
Да. rtcwake управляет питанием и требует root‑прав. Используйте sudo или su.
Что делать, если пробуждение не работает?
Проверьте аппаратные часы, батарейку CMOS, настройки BIOS и поддержку ACPI в ядре. Попробуйте режим -m no, чтобы установить таймер и затем вручную проверить сон.
Можно ли задать конкретное время?
Да. Используйте -t вместе с date +%s для получения числа секунд с эпохи Unix и указывайте -l или -u в зависимости от настройки аппаратных часов.
Итог
rtcwake — простой и мощный инструмент для планового пробуждения Linux‑машин. Он хорошо подходит для автоматизации задач, экономии энергии и планирования работ вне пиковых часов. Тестируйте команды на целевом оборудовании, учитывайте особенности BIOS/UEFI и будьте осторожны с портативными устройствами.
Ключевые действия: проверить поддержку ACPI, определить режим (-m), протестировать вручную и затем автоматизировать через cron или systemd.
Похожие материалы
Убрать белую вспышку в тёмном Firefox
Файлы OneDrive офлайн — как сделать доступными
Как установить и использовать FileZilla на Ubuntu
Всегда запускать CMD с правами администратора
OneMore для OneNote — установка и руководство