Raspberry Pi 4 automatické spustenie Qt aplikácie v čase štartu

Ak ste vytvorili Qt aplikáciu - alebo akúkoľvek inú aplikáciu - pre Raspberry Pi 4, často chcete, aby bola aplikácia volaná okamžite po reštarte Raspberry po dokončení aplikácie.
Toto sa často pokúša pomocou štartovacích skriptov, ktoré je možné zadávať na rôznych miestach.
Je však rozumnejšie nastaviť to prostredníctvom systemd . Ako východiskový bod som použil obrázok raspbian-buster-lite a inštaláciu Qt, ako je opísané v Qt na Raspberry Pi 4 .
Aplikácia Qt sa nachádza v adresári "/home/pi/application" a v tomto príklade má názov "application_one".

Vytvorenie súboru .service

Prvá vec, ktorú musíte urobiť, je vytvoriť súbor .service v adresári "/etc/systemd/system":

sudo nano application_one.service

Teraz je tu zapísané nasledovné:

[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

Záznamy sú v skutočnosti samozrejmé. Aplikácia "application_one" (ExecStart=/home/pi/application/application_one) sa spustí s používateľským účtom "pi" (User=pi). Položka "After=network-online.target" stále uvádza, že aplikácia sa spúšťa až do vytvorenia sieťového pripojenia.

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

Oznámte službu systému

Potom musíte systému povedať, že nová služba by mala byť aktívna:

sudo systemctl enable application_one.service

Potom vykonajte reštart a aplikácia by sa mala spustiť automaticky.

</:code3:>

Aplikácia sa nespustí?

Ak sa aplikácia nespustí automaticky, môžete sa prihlásiť pomocou

sudo systemctl status application_one.service

Zobrazte stav a použite informácie na riešenie problémov. </:code4:>