HMI
Raspberry Pi 4 Automatische start van Qt-applicatie bij booten

Als men een Qt-applicatie - of een andere applicatie - voor de Raspberry Pi 4 gemaakt heeft, wil men vaak dat de applicatie direct wordt opgeroepen nadat de Raspberry opnieuw is opgestart. Dit wordt vaak geprobeerd met startscripts die op verschillende plaatsen kunnen worden ingevoerd. Het is echter verstandiger om dit via systemd te openen. Ik gebruikte als uitgangspunt een raspbian-buster-lite-afbeelding en een Qt-installatie zoals beschreven in Qt op de Raspberry Pi 4. De Qt-applicatie bevindt zich in de map "/home/pi/application" en heeft in dit voorbeeld de naam "application_one". ## .service-bestand maken Eerst moet een .service-bestand worden aangemaakt in de directory "/etc/systemd/system":

sudo nano application_one.service

Het volgende wordt nu ingevoerd:

[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

De vermeldingen spreken eigenlijk voor zich. De applicatie "application_one" (ExecStart=/home/pi/application/application_one) wordt gestart met het gebruikersaccount "pi" (User=pi). De vermelding "After=network-online.target" betekent ook dat de applicatie pas wordt gestart nadat de netwerkverbinding tot stand is gebracht.

## Service bekendmaken bij het systeem Vervolgens moet het systeem worden geïnformeerd dat de nieuwe service actief moet zijn:

sudo systemctl enable application_one.service

Start vervolgens opnieuw op en de applicatie zou automatisch moeten starten.

## Applicatie start niet? Als de applicatie niet automatisch start, kunt u de status weergeven met

sudo systemctl status application_one.service

en de informatie gebruiken om het oplossen van problemen te starten.