Comentaba en esta entrada que una puerta trasera siempre es útil por si se quiere entrar a reiniciar algún servicio que se ha quedado tonto o algún servidor que no responde pero se puede entrar por SSH.
Lo malo es cuando el servidor no responde y no hay manera de entrar ni por SSH ni nada. O también podría ser que tuviéramos un servidor que queremos apagar y eso se puede hacer entrando por SSH y ejecutando el comando halt, pero para ponerlo en marcha de nuevo hay que pulsar un botón o desenchufar la corriente y volver a enchufar. Vamos, que hay que estar delante del cacharro para que vuelva a la vida.
Las Raspberries tienen muchas cosas interesantes y una de ellas es un conector con un montón de pines de entrada/salida. Si las placas más antiguas tenían 26 ahora vienen con 40. Se pueden hacer muchas cosas con estos pines, pero una de las más básicas es configurar un determinado pin como salida y ponerlo a nivel alto (3,3 V) o a nivel bajo (0 V). Con esto se puede controlar un relé y permitir que pase una corriente o que no pase.
Pues esto es lo que utilizo para apagar y encender una Raspberry que da un servicio que considero importante. Si veo que está fallando el servicio trato de entrar en la Rasp y si no puedo, entro en otra y corto la corriente poniendo un pin a nivel bajo y permito que pase la corriente poniendo ese pin a nivel alto. Es una cosa bastante simple pero te puede sacar de un apuro. Y lo mejor es que son cuatro comandos.
$ cat poner_23_low.sh #!/bin/bash gpio -g mode 23 output # GPIO23 como salida gpio -g write 23 0 # Se pone GPIO23 a nivel bajo
Y para poner el pin 23 a nivel alto, pues casi lo mismo:
$ cat poner_23_high.sh #!/bin/bash gpio -g mode 23 output # GPIO23 como salida gpio -g write 23 1 # Se pone GPIO23 a nivel alto
Y para que quede más claro hagos unos enlaces símbolicos:
$ ln -s poner_23_high.sh reponer_corriente.sh $ ln -s poner_23_low.sh cortar_corriente.sh
Ojo, hay que tener cuidado con el tipo de relé porque algunos están cerrados cuando tienen un nivel alto en la entrada y otros están abiertos.
Y este sería el esquema. La jugada consistiría en conectarse a lo que he llamado placa controladora y allí ejecutar el script cortar_corriente.sh o reponer_corriente.sh para de esta forma quitar la alimentación o alimentar a la otra placa.