Odpowiedzi:
Możesz to zrobić (co najmniej połowa) za pomocą Gnome Schedule . ( sudo apt-get install gnome-schedule
) (Uwaga: umieszcza się go w programie uruchamiającym jako Zaplanowane zadania , chociaż pisanie gnome-harmonogram wciąż go wywołuje).
Po uruchomieniu „Nowe” -> „Zadanie cykliczne”. Wypełnij formularz według własnego uznania.
Poleceniem hibernacji jest /usr/sbin/pm-hibernate
(Zawieszenie jest /usr/sbin/pm-suspend
)
Jeśli chodzi o ponowne budzenie, zobacz „Jak zaplanować budzenie po hibernacji?”
Alternatywnie możesz zainstalować „interfejs zarządzania energią”. ( sudo apt-get install powermanagement-interface
)
Następnie utwórz taki skrypt:
#!/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
I zaplanuj w crontabie roota.
Chcesz przełączyć komputer z systemem Linux w tryb uśpienia lub hibernacji i automatycznie budzić się o określonej godzinie? Możesz to łatwo zrobić za pomocą polecenia rtcwake, domyślnie dołączonego do większości systemów Linux.
Może to być przydatne, jeśli chcesz, aby Twój komputer zrobił coś w określonym czasie, ale nie chcesz, aby działał 24 godziny na dobę, 7 dni w tygodniu. Na przykład możesz ustawić komputer w tryb uśpienia w nocy i obudzić go przed wykonaniem niektórych operacji pobierania.
Komenda rtcwake wymaga uprawnień roota, więc musi być uruchamiana z sudo na Ubuntu i innych dystrybucjach pochodzących z Ubuntu. W dystrybucjach Linuksa, które nie używają sudo, musisz najpierw zalogować się jako root za pomocą komendy su.
Oto podstawowa składnia polecenia:
sudo rtcwake -m [type of suspend] -s [number of seconds]
Na przykład następujące polecenie zawiesza system na dysku (hibernuje) i budzi go 60 sekund później:
sudo rtcwake -m disk -s 60
-M switch akceptuje następujące rodzaje zawieszenia:
tryb gotowości - tryb gotowości oferuje niewielkie oszczędności energii, ale przywracanie do działającego systemu jest bardzo szybkie. Jest to tryb domyślny, jeśli pominiesz przełącznik -m.
mem - Zawieś do pamięci RAM. Zapewnia to znaczne oszczędności energii - wszystko jest w stanie niskiego zużycia energii, z wyjątkiem pamięci RAM. Zawartość twojej pamięci zostaje zachowana.
dysk - Zawieś na dysk. Zawartość pamięci jest zapisywana na dysku, a komputer jest wyłączony. Komputer włączy się, a jego stan zostanie przywrócony po zakończeniu timera.
off - Całkowicie wyłącz komputer. Strona podręcznika rtcwake zauważa, że przywracanie z „wyłączonego” nie jest oficjalnie obsługiwane przez specyfikację ACPI, ale i tak działa na wielu komputerach.
nie - Nie zawieszaj natychmiast komputera, po prostu ustaw czas budzenia. Na przykład możesz nakazać komputerowi, aby obudził się o 6 rano. Następnie można ręcznie ustawić tryb uśpienia o 23:00 lub 1:00 - w obu przypadkach obudzi się o 6:00.
Opcja -s w przyszłości zajmuje kilka sekund. Na przykład -s 60 budzi komputer w 60 sekund, a -s 3600 budzi komputer w godzinę.
Opcja -t pozwala obudzić komputer o określonej godzinie. Ten przełącznik wymaga liczby sekund od epoki Uniksa (00:00:00 UTC 1 stycznia 1970 r.). Aby łatwo podać prawidłową liczbę sekund, połącz polecenie date z poleceniem rtcwake.
-L przełącznik mówi rtcwake że zegar sprzętowy jest ustawiony na czas lokalny, podczas gdy przełącznik -u mówi rtcwake że zegar sprzętowy (w BIOSie komputera) jest ustawiony na czas UTC. Dystrybucje Linuksa często ustawiają zegar sprzętowy na czas UTC i tłumaczą go na czas lokalny.
Na przykład, aby komputer obudził się jutro o 6:30, ale nie został natychmiast zawieszony (zakładając, że zegar sprzętowy jest ustawiony na czas lokalny), uruchom następujące polecenie:
sudo rtcwake -m no -l -t $(date +%s -d ‘tomorrow 06:30’)
Więc jeśli ktoś jest zainteresowany, to właśnie to, co znalazłem, działa, bez konieczności instalowania czegokolwiek i bez uprawnień użytkownika root.
Użyj tego polecenia Kod:
dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend
i aby to opóźnić, użyj komendy uśpienia z numerem z smh lub d (s, min, dzień, godzina) i za pomocą;
przykładowy kod:
sleep 60s; dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend
To zawiesza komputer po 60 sekundach