Zawieś i obudź komputer w określonym czasie


Odpowiedzi:


9

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.

Źródło


19

Jak automatycznie wybudzić komputer z systemem Linux ze stanu uśpienia

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.

Korzystanie z rtcwake

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

Rodzaje zawieszenia

-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.

Sekundy vs. określony czas

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’)

Wsparcie


1
Ładne napisanie rtcwake jest na to pytanie. Oferuje kompletne rozwiązanie: askubuntu.com/questions/61708/…
gare

6
Przy kopiowaniu wklej ze strony podaj przynajmniej adres URL: howtogeek.com/121241/...
hanoo

Wygląda na to, że rtcwake nie pamięta wielu instancji, więc jak sprawić, żeby komputer budził się, powiedzmy, co godzinę?
Yan King Yin

1

Możesz spróbować skonfigurować BIOS dla zdarzenia pobudki. Prawie każda płyta główna ma tę funkcję, skorzystaj z podręcznika mb i dowiedz się, że w niektórych biosach AMI nazywa się Budzenie przez alarm RTC, myślę, że jest to łatwy sposób na Obudź komputer o określonej godzinie


0

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.