Wyłączenie komputera o zadanej godzinie lub po określonym czasie to żadna sztuka. Ale czemu komputer nie miałby uruchamiać się o ustalonej porze, budzić nas ulubioną piosenką i wykonać inne zadania np. uruchomić klienta pocztowego? Da się zrobić! Z pomocą przychodzi program rtcwake, który uśpi, zahibernuje lub wyłączy system na tak długo, ile zostanie mu wskazane.
Program rtcwake jest częścią pakietu util-linux i powinien być obecny w systemie bez dodatkowej konfiguracji.
Najprostszy sposób aby przetestować jego działanie:
sudo rtcwake -u -s 60 -m mem
To powinno wprowadzić komputer w stan uśpienia na 60 sekund.
Ważnym parametrem jest -m, który w powyższym poleceniu przyjął wartość mem. Możliwy jest wybór spośród kilku opcji (fragment podręcznika man opisujący parametr -m, przetłumaczony na j. polski):
standby
Stan ACPI S1. Ten stan zapewnia minimalne, ale odczuwalne oszczędności energii a jednocześnie zapewnia niewielkie opóźnienie przy powrocie do działającego systemu. Jest to domyślny tryb.mem
Stan ACPI S3 (Suspend-to-RAM, odpowiednik opcji wstrzymanie w menu systemowym). Ten stan zapewnia znaczne oszczędności energii, ponieważ wszystkie urządzenia w komputerze ustawiane są w tryb niskiego poboru prądu, z wyjątkiem pamięci RAM, która wymaga zasilania, aby przechować wszystkie informacje do czasu wybudzenia.disk
Stan ACPI S4 (Suspend-to-disk, odpowiednik opcji hibernacja w menu systemowym). Ten stan zapewnia największe oszczędności energii i może być użyty nawet, gdy brakuje niskopoziomowego wsparcia zarządzania zasilaniem*. Ten stan działa podobnie do Suspend-to-RAM z tym wyjątkiem, że zawiera dodatkowy krok – zapis pamięci RAM na dysk twardy (dzięki czemu pamięć RAM nie wymaga zasilania).
* – od redakcji: niestety nie wszyscy producenci sprzętu prawidłowo implementują obsługę hibernacji w systemach Linuksowych i warto mieć to na uwadze; nie bez przyczyny w Ubuntu 12.04 opcja hibernacji jest domyślnie ukryta.off
Stan ACPI S5 (Poweroff, odpowiednik opcji wyłącz w menu systemowym). Działanie tej opcji polega na wywołaniu '/sbin/shutdown’. Nie jest to oficjalnie wspierana funkcja ACPI, ale zazwyczaj działa.no
Nie usypia. Program rtcwake jedynie ustawia czas wybudzenia.on
Nie usypia. Zamiast tego odczytuje dane z urządzenia RTC do momentu aż pojawi się sygnał alarmu. Przydatne do debugowania.
Usypianie do określonego czasu (budzenie)
Do uzyskania tego efektu posłużymy się prostym skryptem, nazwijmy go „suspend_until”.
#!/bin/bash # Auto suspend and wake-up script # # Puts the computer on standby and automatically wakes it up at specified time # # Written by Romke van der Meulen # Minor mods fossfreedom for AskUbuntu # Minor mods mario_7 - using -s instad of -t # # Takes a 24hour time HH:MM as its argument # Example: # suspend_until 9:30 # suspend_until 18:45 # ------------------------------------------------------ # Argument check if [ $# -lt 1 ]; then echo "Usage: suspend_until HH:MM" exit fi # Check whether specified time today or tomorrow DESIRED=$((`date +%s -d "$1"` - `date +%s`)) if [ $DESIRED -lt 0 ]; then DESIRED=$((DESIRED + 24*60*60)) fi # Kill rtcwake if already running sudo killall rtcwake # Set RTC wakeup time # N.B. change "mem" for the suspend option # find this by "man rtcwake" sudo rtcwake -l -m mem -s $DESIRED & # feedback echo "Suspending..." # give rtcwake some time to make its stuff sleep 2 # then suspend # N.B. dont usually require this bit #sudo pm-suspend # Any commands you want to launch after wakeup can be placed here # Remember: sudo may have expired by now # Wake up with monitor enabled N.B. change "on" for "off" if # you want the monitor to be disabled on wake xset dpms force on # and a fresh console clear echo "Good morning!"
Aby skrypt działał musimy mu nadać odpowiednie uprawnienia.
chmod +x suspend_until
Teraz wystarczy w konsoli wydać polecenie.
sudo ./suspend_until 07:30
Komputer obudzi się o 07:30, wyczyści konsolę i przywita się z nami. Żeby uruchomić klienta pocztowego, stronę www lub dowolną inną aplikację wystarczy dodać na końcu skryptu stosowne polecenie, np. „firefox http://gmail.com”.
Aktualizacja 27-05-2012: zmieniona wersja skryptu, gdyż ta oryginalna miewała problemy z określaniem prawidłowych godzin wybudzania na niektórych komputerach.
Proste polecenia a może być czasami przydatne. Ciekawy wpis:)
A mi to nie działa. Komputer nie wstał o 7:30 i mnie nie obudził. Plik miałem na pulpicie.
Ciekawy trik, komputer z muzyką jako budzik. Fajne!
Migo, a coś wypisał Ci coś do terminala po wpisaniu: sudo ./suspend_until 07:30?
Fajnie, ale to jest Linux 😉 Gdyby nie to, że testuje elementaryOS Luna, to dziś po wpisaniu uptime miałbym pewnie z dobre 6 miesięcy na Ubu 10.04.4 ;D
Konsola wyświetla mi takie coś:
rtcwake: nie znaleziono żadnego procesu
Suspending…
rtcwake: wakeup from „mem” using /dev/rtc0 at Sat May 26 01:04:02 2012
Dzień dobry!
Komputer się nie budzi a polecenie było takie:
:~/Pulpit$ sudo ./suspend_until 23:04
Skrypt został poprawiony – powinien teraz działać ze wszystkimi komputerami.
Dobrze by było dodać polecenie rtcwake do visudo, żeby działało bez hasła.
Dzieki, przyda się ten wakeup 🙂
Ponieważ jestem nowy w tym systemie i jeszcze nie do końca rozumiem jego zasad chciałbym zadać pytanie.
Jak w tym skrypcie dodać kilka po sobie uruchamiających się programów? Po dopisaniu w pliku:
banshee –play-enqueued Muzyka
google-chrome https://mail.google.com
Wszystko zatrzymuje mi się na banshee, która musi być wyłączona by wszystko ruszyło dalej. Dlaczego tak jest i jak to „naprawić”?
Hmmm, przydała by się do tego binarka, ale na razie zadowolę się aliasami 😉
Ciej
[quote]banshee –play-enqueued Muzyka &
google-chrome https://mail.google.com &[/quote]
jak dasz znak & po poleceniu to zostanie ono odpalone w tle i polecenie z następnej linijki zostanie wykonane 😉
[quote comment=”50396″]Ciej
[quote]banshee –play-enqueued Muzyka &
google-chrome https://mail.google.com &[/quote]
jak dasz znak & po poleceniu to zostanie ono odpalone w tle i polecenie z następnej linijki zostanie wykonane ;)[/quote]
Co więcej polecam też rzucić okiem na nohup 😉
I tyle? To kwestia jednego znaku? XD
Dziękuję bardzo.
Witam.
Mam mały problem jako niedoświadczony użytkownik. Zrobiłem wszystko krok po kroku i po wpisaniu
sudo ./suspend_until 07:30
w konsoli otrzymuje komunikat
sudo: ./suspend_until: nie znaleziono polecenia
Może ktoś powiedzieć co jest nie tak ? Plik jest na pulpicie
p3jot, pewnie zapomniałeś przejść do katalogu Pulpit zanim zacząłeś wydawać kolejne polecenia, zatem:
cd ~/Pulpit
chmod +x suspend_until
sudo ./suspend_until 07:30
Witam
zeby dzialao bez wpisywani hasla mozna w pliku sudoers w linijce admin zmienic na
%admin ALL=(ALL) NOPASSWD: ALL
i wtedy nigdy juz nie tzreba wpisywac hasla przy wpisywaniu sudo przy instalacjach i innych czynnosciach wymagajacych polecenia sudo
plik znajduje sie w katalogu ETC w katalogu glownym mzoan go otworzyc jako administrator ,nautilus ma taka opcje mzona tez edytowac pzrez nano czy visudo to tylko kwestia jak kto woli ja robie to pprzez gedit jako administrator ,tzreba tylko uwazac zeby bledu skaldni w tym pliku nie zrobic bo hmm moze sie okazac ze nie mzoemy uzyc polecenia sudo wtedy jest troche zabawy bo trudno zalogowac sie wkonsoli jako root zeby cokolwiek zmienic ale i an to jest rada 🙂
u mnie dzial bez zarzutu bez poprawek ,standartow konsola otwera sie w aktalogu domowym wiec najlepiej plik twozryc wtym katalogu i nie ma problemu
Pozdrawiam i dzieki 🙂
Wypadałoby dodać, że ta porada jest też olbrzymią luką w bezpieczeństwie i nie powinna być stosowana. Wyłączenie pytania o hasło podczas używania sudo oznacza dobrowolne proszenie się o problemy i to z byle powodu. W sytuacji, gdy nie pojawia się pytanie o hasło dowolna aplikacja lub skrypt mogą wykonywać kod na prawach administratora bez wiedzy użytkownika – o tym, że to źle chyba nie muszę przekonywać. Zdecydowanie odradzam stosowanie tego typu „ułatwień”, bo traci się kontrolę nad tym co dzieje się w systemie. Bezpieczeństwo systemów opartych na Linuksie to między innymi przestrzeganie zasady, że użytkownik powinien mieć tylko tyle uprawnień ile jest mu potrzebne do normalnego działania oraz że działania ingerujące w system powinny być wykonywane przez administratora (lub użytkownika, który po podaniu hasła może chwilowo nabyć jego uprawnienia).
ja osobiscie mam wylaczone pytanie o haslo i nie mam jak do tej pory zadnych problemow , pytanie o haslo czesto utrudnia wiele spraw ale istniej tez mozliowsc wylazcenia pytanai dal konkrtenych polecen np shutdown mozna wykluczyc w pliku sudoers pytanie dale shutdown inczej trudno byloby uzyc skrotu do wylaczenia czy resetu , pytanei o haslo maj sens w esiciach lokalnych z wieloma uzytkownikami i komputerami ejzli ktos uzywa sam jednego kompa nie wizde problemu a intruzow zawsze mzoan odkryc i namierzyc jest wele do tego programow w arzie problemow mozan ich uzyc jak do tej pory nie malem zadnego wlamu ani problemow zpwodu wylaczonego hasla kazdy robi jak uwaza nie wizde powduzebym sam siebei ogarniczal wimei pzornego bezpiecznstwa bo jezli jaksi wlmywacz trafi domnie to i moje hsal w tym nic nie pomoga bo tozadna qwielaksztuka lamac hasla