Raspberry Pi 4 autostart Qt-applikasjon ved oppstartstid

Hvis du har opprettet en Qt-applikasjon - eller et annet program - for Raspberry Pi 4, vil du ofte at applikasjonen skal kalles umiddelbart etter at du har startet Raspberry på nytt etter at applikasjonen er fullført.
Dette er ofte forsøkt med start skript som kan legges inn på ulike steder.
Det er imidlertid mer fornuftig å sette opp dette via systemd . Jeg brukte et raspbian-buster-lite bilde og en Qt-installasjon som beskrevet i Qt på Raspberry Pi 4 som utgangspunkt.
Qt-programmet ligger i katalogen "/home/pi/application" og heter "application_one" i dette eksemplet.

Opprette en .service-fil

Det første du må gjøre er å opprette en .service-fil i katalogen "/etc/systemd/system":

sudo nano application_one.service

Følgende er nå lagt inn her:

[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

Oppføringene er faktisk selvforklarende. Applikasjonen "application_one" (ExecStart=/home/pi/application/application_one) startes med brukerkontoen "pi" (User=pi). Oppføringen "After = network-online.target" sier fortsatt at applikasjonen startes til nettverkstilkoblingen er opprettet.

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

Gjøre tjenesten kjent for systemet

Da må du fortelle systemet at den nye tjenesten skal være aktiv:

sudo systemctl enable application_one.service

Utfør deretter en omstart, og applikasjonen skal starte automatisk.

</:code3:>

Søknaden starter ikke?

Hvis applikasjonen ikke starter automatisk, kan du logge på med

sudo systemctl status application_one.service

Vis statusen, og bruk informasjonen til å feilsøke. </:code4:>