Показать статистику
0 голосов
от (2.3тыс. баллов)

Как запрограммировать компьютер на автоматическое выключение и включение в определенное время?

2.8тыс. просмотров 2 ответов

2 Ответы

0 голосов
от (26.4тыс. баллов)

Если Вы хотите, чтобы компьютер автоматически проснулся в определенное время, то это краткое руководство может помочь Вам автоматизировать определенные задачи - например, загрузить что-то в в определенное время. Благодаря командной строке Вы можете запланировать ваше устройство, чтобы проснуться, предпринять некоторые действия, а затем снова вернуться в режим сна.

Помимо выхода из режима ожидания, может оказаться еще более полезным полностью выключить компьютер и включить его в определенные моменты времени. Спящий режим также поддерживается, но системы Linux, использующие проприетарные драйверы, не всегда выходят из спящего режима должным образом.

Проверка поддержки компьютера таймера пробуждения

На некоторых компьютерах нет необходимого оборудования для поддержки этой функции. Но в большинстве конфигураций это должно работать. Вы можете сделать быстро проверить это: откройте эмулятор терминала и введите следующую команду.

sudo rtcwake -m mem -s 25

Компьютер должен войти в спящий режим и проснуться через 40 секунд. Если вашему устройству требуется более 25 секунд в режиме ожидания, увеличьте время пробуждения, изменив значение «25» на большее.

Также проверьте, поддерживает ли компьютер пробуждение после полного выключения.

sudo rtcwake -m off -s  60

Если ядро, драйверы и аппаратное обеспечение все ладят друг с другом, у вас не должно быть проблем. Если таймеры не поддерживаются, возможно, это связано с тем, что конфигурации оборудования и / или BIOS / UEFI не соответствуют требованиям. Но вы также можете попробовать, поможет ли обновление некоторых драйверов или переход с проприетарных на открытые. Вы также можете установить более новое ядро.

Гибернация имеет проблемы, не связанные с rtcwake командой. Она работает большую часть времени, но иногда не работает. При сбое ваш экран останется черным или покажет вам сообщение об ошибке.

Применение команды rtcwake

Выберите метод энергосбережения и время, когда нужно проснуться. В предыдущей команде этот -s параметр использовался для указания количества секунд ожидания перед повторным включением. Но обычно Вы хотите указать абсолютное время, как 7 утра завтрашнего дня. Для этого Вы используете --date параметр вместо -s.

sudo rtcwake -m mem --date 07:00

Не все аппаратные средства поддерживают установку дат пробуждения далеко в будущем. Это то, что вам нужно просто проверить, работает ли оно на вашем конкретном устройстве.

Время указывается в 24-часовом формате. Например: --date 2019-01-20 16:00 

20 января 2019 года, 4 часа дня  .

rtcwake Dry Run

Вы можете добавить другой параметр в rtcwake, -nчтобы отобразить, когда будильник будет установлен.

sudo rtcwake -m mem --date + 12hours -n

Это пробный прогон, который фактически не устанавливает будильник, а только делает вид, что делает это. Полезно добавить, -n когда Вы хотите проверить, правильно ли указана дата. Если вы уверены, что это правильно, просто используйте команду без -n установки фактического времени пробуждения.

rtcwake энергосбережение

Соответствующие параметры, которые вы можете передать -m параметру:

-m disk 

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

-m mem

обычный режим ожидания, с которым Вы знакомы из меню выключения.

-m off 

Нормальное отключение.

-m disable 

отменить событие пробуждения, которое Вы предварительно установили.

-m no 

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

-m show 

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

Все эти действия могут помочь вам найти компьютер полностью загруженным утром в указанное время. Вы также можете установить утилиту, например at  для автоматизации задач, которые ваш компьютер может запустить после пробуждения.

0 голосов
от (340 баллов)

Операционная система Linux позволяет планировать запуск, завершение или переход компьютера в режим сна в нужное вам время. Например, вы можете запланировать запуск компьютера утром и автоматическое выключение когда ложитесь спать.
ПЛАНИРОВАНИЕ ВКЛЮЧЕНИЯ В LINUX
В Linux для завершения работы или перехода в режим сна и планирования запуска, используется утилита rtcwake. Это встроенный в ядро инструмент, поэтому она уже есть во всех дистрибутивах и устанавливать ничего не придется. Синтаксис команды такой:

$ sudo rtcwake –m режим –s время

Или:

$ sudo rtcwake –m режим –t время

После выполнения команды компьютер сразу выключится. Параметр -s указывает количество секунд до запуска компьютера. Опция -m устанавливает режим выключения. Дело в том что компьютер выключается не полностью, он переходит в сон, при котором питание подается только на несколько самых важных компонентов. Эти компоненты и определяет режим, указанный в этом параметре. Доступные режимы:

standby (S1) – режим с минимальным энергосбережением, компьютер очень быстро засыпает и так же быстро восстанавливается. Этот режим используется по умолчанию;
mem – (S3) – все компоненты системы отключаются кроме памяти;
disk (S4) – Все содержимое памяти записывается на диск;
off (S5) – Аналогично вызову команды shutdown;
on – без отключения, используется для отладки.
Время запуска можно задавать не только в секундах от текущего момента, но и в формате полной даты и времени. Это делается с помощью опции -t, но эта опция принимает время в формате UNIX, поэтому сначала нужно преобразовать наше, обычное время, в этот формат с помощью date.

Например, давайте включим компьютер завтра в 13.00, допустим сегодня 10 сентября 2016. Сначала преобразуем данные:

 date +%s -d "2016-09-11 13:00"

Выключаем компьютер и планируем запуск по расписанию:

 rtcwake -m mem -t 1473541200

Чтобы запланировать выключение linux по расписанию или переход в режим сна будем использовать cron. Просто запланируйте выполнение команды rtcwake через crontab в нужное время для выключения компьютера и планирования последующего включения. Например, выполняем выключение компьютера linux вечером и выполнить запуск по расписанию linux с утра:

 crontab –e

0 21 * * * /usr/bin/rtcwake –m mem –s 28800

Если вам не нужно включать компьютер, а только выключить, можете вместо предыдущей команды использовать shutdown:

0 21 * * * /usr/bin/shutdown -h now
...