Raspberry Pi 4 autostart Qt-applikation vid starttid

Om du har skapat en Qt-applikation - eller någon annan applikation - för Raspberry Pi 4, vill du ofta att applikationen ska anropas omedelbart efter att du startat om Raspberry efter att applikationen har slutförts.
Detta försöker man ofta med startskript som kan matas in på olika ställen.
Det är dock rimligare att ställa in detta via systemd . Jag använde en raspbian-buster-lite-bild och en Qt-installation som beskrivs i Qt på Raspberry Pi 4 som utgångspunkt.
Qt-programmet finns i katalogen "/home/pi/application" och heter "application_one" i det här exemplet.

Skapa en .service-fil

Det första du ska göra är att skapa en .service-fil i katalogen "/etc/systemd/system":

sudo nano application_one.service

Följande anges nu här:

[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

Posterna är faktiskt självförklarande. Programmet "application_one" (ExecStart=/home/pi/application/application_one) startas med användarkontot "pi" (User=pi). Posten "After = network-online.target" anger fortfarande att programmet startas tills nätverksanslutningen har upprättats.

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

Gör tjänsten känd för systemet

Då måste du berätta för systemet att den nya tjänsten ska vara aktiv:

sudo systemctl enable application_one.service

Utför sedan en omstart och programmet ska starta automatiskt.

</:code3:>

Ansökan startar inte?

Om programmet inte startar automatiskt kan du logga in med

sudo systemctl status application_one.service

Visa status och använd informationen för att felsöka. </:code4:>