HMI
Inicio automático en el arranque de la aplicación Qt de Raspberry Pi 4

Si ha creado una aplicación Qt, o cualquier otra aplicación, para Raspberry Pi 4, después de finalizar la aplicación a menudo deseará que la aplicación se inicie inmediatamente después de reiniciar la Raspberry. Esto a menudo se intenta con scripts de inicio que se pueden introducir en varios lugares. Sin embargo, es más razonable hacerlo a través de systemd. He utilizado una imagen raspbian-buster-lite y una instalación Qt como se describe en Qt en la Raspberry Pi 4. La aplicación Qt se encuentra en el directorio «/home/pi/application» y, en este ejemplo, tiene el nombre «application_one».

Crear un archivo .service

Primero, se debe crear un archivo .service en el directorio «/etc/systemd/system»:

sudo nano application_one.service

Ahora se introduce lo siguiente:

[Unit]
Description=Qt application autostart
After=graphical.target
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/application
ExecStart=/home/pi/application/application_one

[Install]
WantedBy=multi-user.target

Las entradas se explican por sí mismas. La aplicación «application_one» (ExecStart=/home/pi/application/application_one) se inicia con la cuenta de usuario «pi» (usuario=pi). La entrada «After=network-online.target» significa que la aplicación esperará hasta que se establezca la conexión de red antes de iniciar la aplicación.

Hacer que el sistema reconozca el servicio

Después, se debe informar al sistema de que el nuevo servicio va a estar activo:

sudo systemctl enable application_one.service

Luego, reinicie el sistema y la aplicación debería iniciarse automáticamente.

¿La aplicación no se inicia?

Si la aplicación no se inicia automáticamente, puede usar

sudo systemctl status application_one.service

para mostrar el estado y utilizar la información para solucionar problemas.