como-ejecutar-aplicacion-al-arranque-de-una-raspberry-pi

Cómo ejecutar una aplicación al arrancar Raspberry Pi

Aprender a ejecutar aplicaciones automáticamente al arranque es una algo muy importante en una gran cantidad de proyectos con Raspberry Pi.

Por ejemplo, porque quieres iniciar un servidor web, una aplicación personalizada o un script. O incluso conectarnos con un dispositivo físico, como una pantalla, un sensor, un actuador.

Existen varias opciones para configurar tu Raspberry Pi de manera que ejecute estas aplicaciones automáticamente cada vez que se inicie. Aquí tenéis una tabla con diferentes opciones para lograrlo.

MétodoDescripción
rc.localMétodo sencillo pero menos flexible
systemdOfrece un control más detallado
AutostartPerfecto para aplicaciones gráficas en el entorno de escritorio
cronBuena opción para scripts simples y tareas programadas

Como no podía ser de otra forma (si no el mundo sería muy fácil) cada uno de estos métodos tiene sus propias ventajas y desventajas. En este artículo, exploraremos las diferentes opciones disponibles

Usar rc.local

Para configurar el archivo rc.local y ejecutar una aplicación al arranque, comenzamos abriendo el archivo /etc/rc.local en un editor de texto con permisos de superusuario utilizando el siguiente comando:

sudo nano /etc/rc.local

Dentro del archivo, antes de la línea exit 0, añadimos el comando para iniciar nuestra aplicación o script. Por ejemplo, para ejecutar un script Python, añadimos:

/usr/bin/python3 /home/pi/miscripts/miscript.py &

Es importante añadir el & al final del comando para asegurar que el proceso se ejecute en segundo plano.

Después de añadir el comando, guardamos el archivo y cerramos el editor usando Ctrl+X, luego Y, y presionamos Enter.

Finalmente, reiniciamos nuestra Raspberry Pi para verificar que el comando se ejecuta correctamente utilizando el comando:

sudo reboot

Usar systemd

systemd es el sistema de inicio y gestión de servicios utilizado en Raspberry Pi OS. Proporciona un método más moderno y flexible para ejecutar aplicaciones al arranque.

Para configurar un servicio con systemd, comenzamos creando un nuevo archivo de servicio en /etc/systemd/system/. Por ejemplo, para un servicio llamado mi_aplicacion, utilizamos el siguiente comando:

sudo nano /etc/systemd/system/mi_aplicacion.service

Dentro del archivo, introducimos la siguiente configuración:

[Unit]
Description=Mi Aplicación

[Service]
ExecStart=/usr/bin/python3 /home/pi/miscripts/miscript.py
Restart=always
User=pi

[Install]
WantedBy=multi-user.target
  • ExecStart: Ruta al ejecutable o script.
  • Restart: Configuración para reiniciar el servicio si falla.
  • User: Usuario que ejecutará el servicio.

Después de añadir la configuración, guardamos el archivo y cerramos el editor.

Para que systemd reconozca el nuevo servicio, recargamos la configuración con el siguiente comando:

sudo systemctl daemon-reload

Luego, iniciamos el servicio y lo habilitamos para que se inicie al arranque:

sudo systemctl start mi_aplicacion
sudo systemctl enable mi_aplicacion

Finalmente, comprobamos el estado del servicio para asegurarnos de que está funcionando correctamente:

sudo systemctl status mi_aplicacion

Agregar el script al directorio autostart

Este método es útil para aplicaciones gráficas y scripts que deben iniciarse en el entorno de escritorio.

Para configurar el autostart, comenzamos creando un archivo de entrada en el directorio ~/.config/autostart/. Por ejemplo, para una aplicación llamada mi_aplicacion, utilizamos los siguientes comandos:

mkdir -p ~/.config/autostart
nano ~/.config/autostart/mi_aplicacion.desktop

Dentro del archivo, introducimos la siguiente configuración:

[Desktop Entry]
Type=Application
Exec=/usr/bin/python3 /home/pi/miscripts/miscript.py
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Mi Aplicación
Comment=Inicia mi aplicación al arranque

Después de añadir la configuración, guardamos el archivo y cerramos el editor usando Ctrl+X, luego Y, y presionamos Enter.

Finalmente, reiniciamos el entorno de escritorio o la Raspberry Pi para aplicar los cambios. Utilizamos el comando:

sudo reboot

Usar Cron

El comando cron permite programar tareas, y con la opción @reboot, puedes ejecutar scripts al arranque.

Para configurar cron, primero abrimos el archivo crontab del usuario actual utilizando el siguiente comando:

crontab -e

Dentro del archivo crontab, añadimos una línea para ejecutar nuestro script al arranque. Por ejemplo, podemos añadir:

@reboot /usr/bin/python3 /home/pi/miscripts/miscript.py

Después de añadir la entrada, guardamos el archivo y cerramos el editor usando Ctrl+X, luego Y, y presionamos Enter.

Finalmente, reiniciamos nuestra Raspberry Pi para verificar que el script se ejecuta correctamente. Utilizamos el comando:

sudo reboot