Pokud jste vytvořili aplikaci Qt - nebo jakoukoli jinou aplikaci - pro Raspberry Pi 4, často chcete, aby byla aplikace volána ihned po restartování Raspberry po dokončení aplikace.
To se často pokouší pomocí spouštěcích skriptů, které lze zadat na různých místech.
Je však rozumnější nastavit to přes systemd . Jako výchozí bod jsem použil raspbian-buster-lite obraz a Qt instalaci, jak je popsáno v Qt na Raspberry Pi 4 .
Aplikace Qt je umístěna v adresáři "/home/pi/application" a v tomto příkladu se jmenuje "application_one".

Vytvoření souboru .service

První věc, kterou musíte udělat, je vytvořit soubor .service v adresáři "/ etc / systemd / system":

sudo nano application_one.service

Zde je nyní zadáno následující:

[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

Položky jsou ve skutečnosti samozřejmé. Aplikace "application_one" (ExecStart=/home/pi/application/application_one) je spuštěna s uživatelským účtem "pi" (User=pi). Položka "After=network-online.target" stále uvádí, že aplikace je spuštěna, dokud není navázáno síťové připojení.

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

Informování systému o službě

Pak musíte sdělit systému, že nová služba by měla být aktivní:

sudo systemctl enable application_one.service

Poté proveďte restart a aplikace by se měla automaticky spustit.

</:code3:>

Aplikace se nespustí?

Pokud se aplikace nespustí automaticky, můžete se přihlásit pomocí

sudo systemctl status application_one.service

Zobrazte stav a použijte informace k řešení potíží. </:code4:>

Walter Prechtl

Walter Prechtl

Aktualizováno na: 08. March 2024
Doba čtení: 2 minuty