Application Qt de démarrage automatique du Raspberry Pi 4 au démarrage

Si vous avez créé une application Qt - ou toute autre application - pour le Raspberry Pi 4, vous souhaitez souvent que l’application soit appelée immédiatement après le redémarrage du Raspberry une fois l’application terminée.
Ceci est souvent tenté avec des scripts de démarrage qui peuvent être entrés à différents endroits.
Cependant, il est plus raisonnable de le configurer via systemd . J’ai utilisé une image raspbian-buster-lite et une installation Qt comme décrit dans Qt sur le Raspberry Pi 4 comme point de départ.
L’application Qt se trouve dans le répertoire « /home/pi/application » et est nommée « application_one » dans cet exemple.

Création d’un fichier .service

La première chose à faire est de créer un fichier .service dans le répertoire « /etc/systemd/system » :

sudo nano application_one.service

Ce qui suit est maintenant entré ici:

[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

Les entrées sont en fait explicites. L’application « application_one » (ExecStart=/home/pi/application/application_one) est lancée avec le compte utilisateur « pi » (User=pi). L’entrée « After = network-online.target » indique toujours que l’application est démarrée jusqu’à ce que la connexion réseau soit établie.

</:code2:></:code1:>

Faire connaître le service au système

Ensuite, vous devez indiquer au système que le nouveau service doit être actif:

sudo systemctl enable application_one.service

Ensuite, effectuez un redémarrage et l’application devrait démarrer automatiquement.

</:code3:>

L’application ne démarre pas?

Si l’application ne démarre pas automatiquement, vous pouvez vous connecter avec

sudo systemctl status application_one.service

Affichez l’état et utilisez les informations pour résoudre les problèmes. </:code4:>