HMI
Raspberry Pi 4 Autostart Qt-applikasjon ved oppstart

Hvis du har opprettet en Qt-applikasjon – eller en hvilken som helst annen applikasjon – for Raspberry Pi 4, vil du ofte at programmet skal starte umiddelbart etter omstart av Raspberry. Dette prøver man ofte å gjøre med start-scripts, som kan legges inn på forskjellige steder. Det er imidlertid mer fornuftig å etablere dette over systemd. Jeg brukte et raspbian-buster-lite-bilde og en Qt-installasjon som beskrevet i Qt på Raspberry Pi 4. Qt-applikasjonen ligger i katalogen «/home/pi/application» og har i dette eksemplet navnet «application_one».

Opprettelse av en .service-fil

Først av må en .service-til opprettes i katalogen «/etc/systemd/system»:

sudo nano application_one.service

Her legges følgende inn:

[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 egentlig selvforklarende. Applikasjonen «application_one» (ExecStart=/home/pi/application/application_one) startes med brukerkontoen «pi» (User=pi). Oppføringen «After=network-online.target» medfører også at applikasjonen startes til nettverksforbindelsen er opprettet.

Bekjentgjøre systemet med tjeneste

Deretter må systemet informeres om at den nye tjeneste skal være aktiv:

sudo systemctl enable application_one.service

Deretter utføres omstart, hvorpå applikasjonen skal starte automatisk.

Starter ikke applikasjonen?

Hvis applikasjonen ikke starter automatisk, kan bruke

sudo systemctl status application_one.service

for å vise statusen, og feilsøke ved hjelp av informasjonen.