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:>