Als u een Qt-toepassing - of een andere toepassing - voor de Raspberry Pi 4 hebt gemaakt, wilt u vaak dat de toepassing onmiddellijk na het opnieuw opstarten van de Raspberry wordt aangeroepen nadat de toepassing is voltooid.
Dit wordt vaak geprobeerd met startscripts die op verschillende plaatsen kunnen worden ingevoerd.
Het is echter redelijker om dit via systemd in te stellen. Ik heb een raspbian-buster-lite image en een Qt installatie zoals beschreven in Qt op de Raspberry Pi 4 als uitgangspunt gebruikt.
De Qt-toepassing bevindt zich in de map "/home/pi/application" en heeft in dit voorbeeld de naam "application_one".

Een .service-bestand maken

Het eerste wat u moet doen is een .service bestand maken in de map "/etc/systemd/system":

sudo nano application_one.service

Het volgende is nu hier 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 lemma's 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" geeft nog steeds aan dat de toepassing wordt gestart totdat de netwerkverbinding tot stand is gebracht.

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

Maak de service bekend aan het systeem

Vervolgens moet u het systeem vertellen dat de nieuwe service actief moet zijn:

sudo systemctl enable application_one.service

Voer vervolgens een herstart uit en de applicatie zou automatisch moeten starten.

</:code3:>

Aanvraag start niet?

Als de applicatie niet automatisch start, kunt u inloggen met

sudo systemctl status application_one.service

Geef de status weer en gebruik de informatie om problemen op te lossen. </:code4:>

Walter Prechtl

Walter Prechtl

Bijgewerkt op: 08. March 2024
Leestijd: 2 minuten