Автоматический вывод вашей системы Linux из спящего режима или режима гибернации
Сегодня мы обсудим полезную тему, которая описывает, как автоматически вывести вашу систему Linux из спящего режима или режима гибернации с помощью утилиты 'Rtcwake'. rtcwake используется для перехода системы Linux в спящий или спящий режим и автоматического ее пробуждения в определенное время. Нет необходимости выключать и снова включать систему. Просто переведите свою систему в спящий режим или режим гибернации, вернитесь через указанное время и начните выполнять свои действия.
Предупреждение:
Обратите внимание, что RTC означает часы реального времени. На самом деле это ваши аппаратные часы, которые можно настроить в BIOS. Если у вас проблема с батареей CMOS или с биосом, эта команда не будет работать. Вам необходимо установить правильное время в BIOS, чтобы правильно использовать rtcwake. Кроме того, вам нужно быть осторожным при использовании этой утилиты, поскольку для ее работы требуются права root. Любое неправильное использование этой утилиты может привести к сбою ядра и/или системы.
Автоматически выводит вашу систему Linux из спящего режима или режима гибернации с помощью утилиты «rtcwake»
Rtcwake по умолчанию предустановлен в большинстве операционных систем Linux, поэтому не беспокойтесь об его установке. Позвольте мне показать вам несколько практических примеров. Я протестировал следующие команды на своем рабочем столе Arch Linux, и они сработали хорошо, как я и ожидал.
Типичный синтаксис команды rtcwake:
rtcwake [options] [-d device] [-m standby_mode] {-s seconds|-t time_t}
Система пробуждения через определенное время
Прежде всего, перед запуском этой программы убедитесь, что вы закрыли все запущенные программы или сохранили все открытые документы. Для работы команды rtcwake требуются права root.
Давайте теперь приостановим нашу систему и разбудим ее через 60 секунд. Для этого запустите:
sudo rtcwake -m disk -s 60
Пример вывода будет:
rtcwake: assuming RTC uses UTC ...
rtcwake: wakeup from "disk" using /dev/rtc0 at Fri Apr 21 09:04:49 2017
Здесь,
- -m указывает режим.
- -s указывает время пробуждения системы. В нашем случае мы дали 60 секунд.
Команда rtcwake поддерживает следующие режимы.
- режим ожидания — это режим по умолчанию, если вы не упомянули переключатель -m в своей команде. Это состояние обеспечивает минимальную, хотя и реальную, экономию энергии, обеспечивая при этом переход обратно к работающей системе с очень малой задержкой.
- freeze — в этом режиме все процессы замораживаются, все устройства приостанавливаются, а все процессоры простаивают.
- mem — приостановка в оперативной памяти. В этом состоянии все будет переведено в режим пониженного энергопотребления, за исключением памяти, что обеспечивает значительную экономию энергии. Содержимое оперативной памяти сохраняется.
- диск — приостановка на диск. Это состояние обеспечивает наибольшую экономию энергии. Это состояние работает аналогично Suspend-to-RAM, но включает в себя последний этап записи содержимого памяти на диск.
- off — полностью выключает ваш компьютер. Это делается вызовом «/sbin/shutdown». ACPI официально не поддерживается, но обычно работает.
- нет – не приостанавливать, только установить время пробуждения по RTC.
- включено – не приостанавливать, а читать данные RTC устройства, пока не появится время будильника. Этот режим полезен для отладки.
- отключить — отключить ранее установленный будильник.
- show — печатает информацию о тревоге в формате: «будильник: выключен|включен <время>». например «будильник: пятница, 21 апреля, 15:00:05 2017».
Система пробуждения в определенное время
Мы также можем разбудить нашу систему в определенное время, используя опцию -t, как показано в примере ниже.
sudo rtcwake -m no -l -t "$(date -d 'today 16:00:00' '+%s')"
Пример вывода:
Здесь,
- -m no — этот параметр не приостанавливает работу компьютера, а только устанавливает время пробуждения по RTC.
- -l — указывает местное время, установленное в биосе.
- -t $ (дата +%s -d 'сегодня 16:00:00') – устанавливает время пробуждения сегодня на 16:00.
Полезный совет. Чтобы узнать, что делает каждый аргумент в команде Linux/Unix, ознакомьтесь с Explainshell.
Если вы хотите разбудить вашу систему завтра в определенное время, команда будет такой:
sudo rtcwake -m no -l -t $(date +%s -d 'tomorrow 10:00')
Приведенная выше команда разбудит вашу систему завтра в 10 утра, но не приостановит ее немедленно.
Чтобы разбудить вашу систему в определенную дату и время:
sudo rtcwake -m no -l -t "$(date -d '2017-04-25 16:00:00' '+%s')"
Кроме того, вы можете запустить определенную программу после пробуждения системы с помощью оператора «&&», как показано в следующем примере.
sudo rtcwake -m mem -s 60 && chromium
Приведенная выше команда приостанавливает работу нашей системы в оперативной памяти, пробуждает ее через 60 секунд и запускает веб-браузер Chromium. Круто, не так ли?
Более подробную информацию можно найти на страницах руководства.
man rtcwake
Рекомендуем прочитать:
- Автоматическое выключение, перезагрузка, приостановка работы и перевод системы Linux в спящий режим в определенное время
И это все. Теперь вы знаете, как автоматически вывести компьютер, работающий под управлением Linux, в определенное время или после него из режима сна или гибернации.