Vamos a ver como podemos configurar la Raspberry Pi para que se encienda, se apague y se reinicie cuando nosotros queramos. El reinicio y el apagado son sencillos. Para el encendido necesitaremos soluciones más imaginativas.
Para programar el apagado y reinicio usaremos el servicio cron para programar tareas. Ya vimos como funcionaba en esta entrada. Ahora solo hace falta ver que comandos tenemos que programar.
Para reiniciar la Raspberry podemos usar:
reboot
Y para apagarla:
shutdown -h now
Ambos necesitan usarse con permisos de administrador por lo que es recomendable programarlos en el crontab del usuario root o de cualquiera que tenga permisos de administrador y precederlos del comando sudo.
Ahora vemos como resolvemos programar el encendido. No hay un comando que encienda al Raspberry Pi tras haberla apagado. Para ello necesitáramos un RTC con una batería que se quedase en espera para encender la Raspberry, por suerte debido a como funciona la Raspberry eso es muy sencillo. Si tienes la Raspberry sin alimentación y se la pones se enciende, no hay ningún interruptor que cambiar de on a off ni nada parecido. Aprovechando eso basta con usar un enchufe con temporizador, que se pueden comprar muy baratos. Esos enchufes llevan un reloj en el que ajustas que horas van a tener luz y que horas no.
Por ejemplo, supongamos que queremos tener una Raspberry de tal forma que se apague por la madrugada cuando no vas a hacer uso de ella, por ejemplo a la 1:00 y que se encienda a las 8:00. Lo primero es ajustar el enchufe, lo programamos para que corte la alimentación pasadas la 1:00 pero dejando un margen, la 1:15, la 1:30, sin apurar. Y para que a las 8:00 (o algo antes) vuelta a conectar la alimentación.
El último paso es configurar una tarea de cron para que lance el comando de apagar la Raspberry a la 1:00. Para evitar que cuando se corte la corriente se apague la Raspberry mal hay que dejar un margen de tiempo desde que está programado lanzar el comando hasta que el enchufe corte la corriente.