Ejecutar script al inicio en nuestra Raspberry Pi

Estos días estoy intentando programar un Robot usando una Raspberry Pi (y un par de Arduinos) y me ha surgido la necesidad de ejecutar un script automáticamente cada vez que la Raspberry se enciende.

Imaginemos que tenemos un script (en mi caso el código Python que dará vida al Robot) que deseamos ejecutar cada vez que nuestra Raspberry Pi encienda.

Una posibilidad sería usar el Cron (del griego chronos, que significa tiempo; el ‘demonio’/servicio que ejecuta programas en segundo plano) para que ejecute nuestro programa al reiniciar (en lugar de a horas concretas, que es lo más habitual con Cron).

Otra posibilidad más compleja (y completa) sería crear nuestro propio servicio, que podríamos configurar para que se inicie en cada arranque.

Pero, ¿qué pasa si queremos mostrar la salida de nuestro programa por pantalla una vez que el escritorio está cargado? Cualquiera de las dos alternativas anteriores ejecuta el programa en segundo plano, sin interactuar con el usuario. Si queremos que nuestro script pueda mostrar lo que ve la RaspiCam o una gráfica de estado, necesitaremos ejecutarlo dentro del entorno de escritorio de la Raspberry (LXDE en Raspbian).

Por suerte es fácil de conseguir. Tan sencillo como editar la configuración de autoarranque de LXDE para nuestro usuario:

    sudo leafpad ~/.config/lxsession/LXDE-pi/autostart

Nota: En versiones anteriores de Raspbian el archivo a editar se llama <~/.config/lxsession/LXDE/autostart>

Y añadir la línea para lanzar nuestro script al final. Por ejemplo si queremos ejecutar un script Python podemos añadir:

    @/usr/bin/python /home/pi/script-robot.py

Por último, podremos usar para lanzar nuestro script dentro de una ventana de terminal (y así ver la salida por consola del mismo), por ejemplo:

    @lxterminal -e /usr/bin/python /home/pi/script-robot.py

Comments

comments powered by Disqus