Приостановите и разбудите ПК в определенное время

Ответы:

9

Вы можете сделать это (по крайней мере, половину) с помощью Gnome Schedule . ( sudo apt-get install gnome-schedule) (NB: он помещается в вашу программу запуска как запланированные задачи , хотя при вводе gnome-schedule это все равно появляется.)

После его запуска «New» -> «Recurrent Task». Заполните форму, как считаете нужным.

Команда для спящего режима есть /usr/sbin/pm-hibernate(Suspend is /usr/sbin/pm-suspend)

Что касается повторного пробуждения, см. «Как запланировать выход из спящего режима?»


Кроме того, вы можете установить «интерфейс управления питанием». ( sudo apt-get install powermanagement-interface)

Затем создайте скрипт, подобный этому:

#!/bin/bash
# This script puts the system under standby mode for x hours
usage() {
echo "usage: $0 <n-hours>"
echo "where <n-hours> is the number of hours to be on standby"
exit 0

}
if [ $# -ne 1 ]
then
usage
fi

PATH=$PATH:/usr/sbin
hours=$1
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo `date '+%s' -d "+ $hours hours"` > /sys/class/rtc/rtc0/wakealarm
## Edit the above line to get the exact length of hibernation you want
pmi action suspend

И запланируйте это в crontab рута.

Источник

Джон
источник
19

Как сделать так, чтобы ваш Linux-компьютер автоматически выходил из спящего режима

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

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

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

Команде rtcwake требуются права суперпользователя, поэтому ее следует запускать с помощью sudo в Ubuntu и других производных от Ubuntu дистрибутивах. В дистрибутивах Linux, которые не используют sudo, вам сначала нужно войти в систему как пользователь root с помощью команды su.

Вот основной синтаксис команды:

sudo rtcwake -m [type of suspend] -s [number of seconds]

Например, следующая команда приостанавливает работу вашей системы на диске (переводит ее в спящий режим) и пробуждает через 60 секунд:

sudo rtcwake -m disk -s 60

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

-M коммутатор принимает следующие типы приостановки:

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

mem - приостановить в RAM. Это обеспечивает значительную экономию энергии - все находится в состоянии низкого энергопотребления, кроме вашей оперативной памяти. Содержимое вашей памяти сохраняется.

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

off - полностью выключить компьютер. Справочная страница rtcwake отмечает, что восстановление из «off» официально не поддерживается спецификацией ACPI, но в любом случае это работает на многих компьютерах.

нет - не выключайте компьютер немедленно, просто установите время пробуждения. Например, вы можете попросить свой компьютер проснуться в 6 утра. После этого можно положить его спать вручную в 11 вечера или 1 утра - в любом случае, он проснется в 6 утра.

Секунды против определенного времени

Опция -s в будущем займет несколько секунд. Например, -s 60 разбудит компьютер за 60 секунд, а -s 3600 разбудит компьютер за час.

Опция -t позволяет вам разбудить компьютер в определенное время. Этому переключателю требуется несколько секунд с начала эпохи Unix (00:00:00 UTC 1 января 1970 года). Чтобы легко указать правильное количество секунд, объедините команду date с командой rtcwake.

-L переключатель указывает rtcwake , что аппаратные часы установлены по местному времени, в то время как -u переключатель указывает rtcwake , что аппаратные часы (в BIOS вашего компьютера) установлен в UTC время. Дистрибутивы Linux часто устанавливают ваши аппаратные часы на время UTC и переводят их в ваше местное время.

Например, чтобы компьютер проснулся завтра в 6:30 утра, но не остановился сразу (при условии, что ваши аппаратные часы настроены на местное время), выполните следующую команду:

sudo rtcwake -m no -l -t $(date +%s -d ‘tomorrow 06:30’)

Помогите

Один ноль
источник
1
Хорошая рецензия на rtcwake по этому вопросу. Он предлагает полное решение: askubuntu.com/questions/61708/…
gare
6
Пожалуйста, когда вы копируете вставку с веб-сайта, укажите
hanoo
Кажется, что rtcwake не может запомнить несколько экземпляров, так как я могу заставить компьютер просыпаться, скажем, каждый час?
Ян Кинг Инь
1

Вы можете попробовать настроить BIOS для события пробуждения. Почти у каждой материнской платы есть эта функция, используйте руководство по mb и выясните это, в некоторых биографиях AMI это называется Wake up by RTC alarm, я думаю, что это простой способ разбудить компьютер в определенное время

Прасад Р.Д.
источник
0

Так что, если кому-то интересно, я обнаружил, что это работает, без необходимости устанавливать что-либо и без полномочий root.

Используйте эту команду Код:

dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

и чтобы задержать его, используйте команду sleep с числом с smh или d (секунда, мин, день, час) и с;

пример кода:

sleep 60s; dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Это приостанавливает компьютер через 60 секунд

AndyDaSilva52
источник