Гид по технологиям

Как настроить автоматическое пробуждение Linux‑ПК с помощью rtcwake

6 min read Linux Обновлено 21 Dec 2025
Автопробуждение Linux: rtcwake и советы
Автопробуждение Linux: rtcwake и советы

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

Схема: автоматическое пробуждение Linux‑ПК

Быстрые ссылки

  • Использование rtcwake
  • Типы приостановки
  • Через секунды или конкретное время
  • Дополнительные советы
  • Ограничения и когда это не сработает

Использование rtcwake

Команда rtcwake требует прав root. На Ubuntu и производных используйте sudo. На дистрибутивах без sudo войдите как root через su.

Базовый синтаксис прост:

sudo rtcwake -m <тип_приостановки> -s <секунды>

Пример: приостановить систему на диск (гибернация) и разбудить через 60 секунд:

sudo rtcwake -m disk -s 60

Это удобно, если вы хотите, чтобы компьютер выполнял работу в определённое время, но не был включён всё время. Например, поставить ПК в сон на ночь и разбудить за полчаса до вашего подъёма для загрузки обновлений или бэкапов.

Важно: некоторые ноутбуки и платы могут по‑разному обрабатывать команды питания. Тестируйте команды в безопасной среде до постановки в продуктив.

Скриншот команды rtcwake: пример запуска

Типы приостановки

Ключ -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')

Скриншот вывода команды date для планирования пробуждения

Дополнительные советы и сценарии использования

  • Запуск команды после пробуждения: используйте оператор &&. Пример: приостановить в 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 для надёжного планирования.

Быстрая методика внедрения (шаблон)

  1. Определите цель: загрузка обновлений, резервное копирование, подготовка среды.
  2. Выберите режим (-m). Для теста используйте mem.
  3. Проведите ручный прогон: rtcwake -m mem -s 120.
  4. Проверьте логи (journalctl) и корректность восстановления.
  5. Автоматизируйте через 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.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Убрать белую вспышку в тёмном Firefox
Firefox

Убрать белую вспышку в тёмном Firefox

Файлы OneDrive офлайн — как сделать доступными
OneDrive

Файлы OneDrive офлайн — как сделать доступными

Как установить и использовать FileZilla на Ubuntu
Ubuntu

Как установить и использовать FileZilla на Ubuntu

Всегда запускать CMD с правами администратора
Windows

Всегда запускать CMD с правами администратора

OneMore для OneNote — установка и руководство
OneNote

OneMore для OneNote — установка и руководство

Обновить ленту TikTok: очистка кэша и скрытие видео
Социальные сети

Обновить ленту TikTok: очистка кэша и скрытие видео