Ejecutar una aplicación al arranque consiste en hacer que un script, servicio o programa se inicie automáticamente cuando arranca la Raspberry Pi.
Por ejemplo, porque queremos iniciar un servidor web, una aplicación personalizada o un script que interactúa con un dispositivo físico, como una pantalla, un sensor o un actuador.
Existen varias opciones para configurar Raspberry Pi y ejecutar estas aplicaciones automáticamente cada vez que se inicie. Aquí tenéis una tabla con diferentes opciones para lograrlo.
| Método | Descripción |
|---|---|
rc.local | Método sencillo pero menos flexible |
systemd | Ofrece un control más detallado |
| Autostart | Perfecto para aplicaciones gráficas en el entorno de escritorio |
cron | Buena 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 la práctica, systemd suele ser la opción más recomendable para servicios persistentes.
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/usuario/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/usuario/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/usuario/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/usuario/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

