Ответы:
Вы можете сделать это (по крайней мере, половину) с помощью 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 рута.
Хотите перевести свой ПК с Linux в спящий режим или в режим гибернации, чтобы он автоматически включался в определенное время? Вы можете легко сделать это с помощью команды rtcwake, включенной по умолчанию в большинство систем Linux.
Это может быть полезно, если вы хотите, чтобы ваш компьютер что-то делал в определенное время, но не хотите, чтобы он работал 24/7. Например, вы можете перевести свой компьютер в ночное время и дать ему проснуться, прежде чем выполнять какие-либо загрузки.
Команде 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’)
Вы можете попробовать настроить BIOS для события пробуждения. Почти у каждой материнской платы есть эта функция, используйте руководство по mb и выясните это, в некоторых биографиях AMI это называется Wake up by RTC alarm, я думаю, что это простой способ разбудить компьютер в определенное время
Так что, если кому-то интересно, я обнаружил, что это работает, без необходимости устанавливать что-либо и без полномочий 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 секунд