Hvis du har oprettet en Qt-applikation - eller en anden applikation - til Raspberry Pi 4, ønsker du ofte, at applikationen skal kaldes umiddelbart efter genstart af Raspberry efter applikationen er afsluttet.
Dette forsøges ofte med startscripts, der kan indtastes forskellige steder.
Det er dog mere rimeligt at konfigurere dette via systemd . Jeg brugte et raspbian-buster-lite billede og en Qt installation som beskrevet i Qt på Raspberry Pi 4 som udgangspunkt.
Qt-applikationen er placeret i mappen "/home/pi/application" og hedder "application_one" i dette eksempel.

Oprette en .service-fil

Den første ting at gøre er at oprette en .service-fil i mappen "/etc/systemd/system":

sudo nano application_one.service

Følgende er nu indtastet 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

Posterne er faktisk selvforklarende. Programmet "application_one" (ExecStart = / home / pi / application / application_one) startes med brugerkontoen "pi" (User = pi). Posten "After = network-online.target" angiver stadig, at applikationen startes, indtil netværksforbindelsen er etableret.

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

Gør tjenesten kendt for systemet

Derefter skal du fortælle systemet, at den nye tjeneste skal være aktiv:

sudo systemctl enable application_one.service

Udfør derefter en genstart, og applikationen skal starte automatisk.

</:code3:>

Ansøgningen starter ikke?

Hvis programmet ikke starter automatisk, kan du logge ind med

sudo systemctl status application_one.service

Vis status, og brug oplysningerne til fejlfinding. </:code4:>

Walter Prechtl

Walter Prechtl

Opdateret på: 08. March 2024
Læsetid: 2 minutter