dissabte, 18 de maig de 2013

Programar l'aturada, suspensió i reengegada de l'ordinador

Programar l'aturada en debian o derivades és fàcil:

$ sudo shutdown -h 30
[sudo] password for tomi:

Broadcast message from root@eee-lmde (pts/0) (Sat May 18 21:56:39 2013):

The system is going DOWN for system halt in 30 minutes!


O bé:

$ sudo shutdown -h 23:30

També es pot programar al crontab, per exemple:

00 22 * * * sudo shutdown -h 23:55


Però si el que es vol és programar la suspensió, la cosa ja no és tan obvia. Com que m'ha costat una estona trobar-ho -fins que he fet cap aquí- ho deixo en aquesta xuleta i potser li serveix a algú. És així de fàcil, per exemple, per a programar la suspensió en 10 minuts:

$ sudo sleep 600s; sudo pm-suspend

Òbviament també es pot posar al crontab, en un script que es pot cridar amb una combinació de tecles...
I una altra cosa que es pot fer: suspendre l'ordinador i fer que es desperti en un temps programat, per exemple, al cap de 10 minuts:

$ sudo rtcwake -m mem -s 600

I una combinació de les dues? Fàcil:

$ sudo sleep 600; sudo rtcwake -s 600 -m mem

També es pot programar rtcwake per a una hora concreta, tal com ho expliquen aquí.

I en bonic, amb avís a l'àrea de notificació (requereix el paquet libnotify-bin):

$ sudo sleep 5; export DISPLAY=:0.0; notify-send "ojuT" "que em suspenc"; sleep 7; sudo rtcwake -s30 -m mem

Actualització 18/09/2013:

Em vaig adonar que amb Manjaro l'invent de programar la suspensió no funcionava amb $ sudo sleep 600s; sudo pm-suspend,-segurament per un tema de diferent timeout de la contrasenya del sudo, ja que amb temps més curts sí que funciona- però de seguida algú es va preguntar com fer-ho als fòrums de Manjaro, i aquesta és la solució amb una joguina nova: at:

You can do with an at job.  You'll need to install and start the at service
Code:
sudo pacman -S at
sudo systemctl enable atd.service
sudo systemctl start atd.service

To use at you start by entering the at command followed by the time you want it to run, this opens the at dialogue (at>) where you enter the commands or script you want to run. Pressing ctrl+d tells at that you are done entering commands.

To put the computer to sleep at a specific time, say 11:30 PM enter
Code:
sudo at 23:30
at> pm-suspend 
at> ctrl+d

The at command is really flexible, you can schedule a job at a specific time, midnight, now + x hours and so on.  See this link: http://content.hccfl.edu/pollock/unix/atdemo.htm
amunt