Ha létrehozott egy Qt alkalmazást - vagy bármely más alkalmazást - a Raspberry Pi 4-hez, gyakran azt szeretné, hogy az alkalmazást azonnal meghívják a Raspberry újraindítása után, miután az alkalmazás befejeződött.
Ezt gyakran különböző helyeken beírható indító szkriptekkel kísérlik meg.
Azonban ésszerűbb ezt a systemd-n keresztül beállítani. Kiindulási pontként egy raspbian-buster-lite képet és egy Qt telepítést használtam a Qt-ben leírtak szerint a Raspberry Pi 4-en .
A Qt alkalmazás a "/home/pi/application" könyvtárban található, és ebben a példában "application_one" a neve.

.service fájl létrehozása

Az első dolog az, hogy hozzon létre egy .service fájlt az "/etc/systemd/system" könyvtárban:

sudo nano application_one.service

Most a következőket kell itt beírni:

[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

A bejegyzések valójában magától értetődőek. Az "application_one" alkalmazás (ExecStart=/home/pi/application/application_one) a "pi" (User=pi) felhasználói fiókkal indul el. Az "After=network-online.target" bejegyzés továbbra is azt jelzi, hogy az alkalmazás elindul, amíg a hálózati kapcsolat létre nem jön.

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

A szolgáltatás ismertté tétele a rendszer számára

Ezután meg kell mondania a rendszernek, hogy az új szolgáltatásnak aktívnak kell lennie:

sudo systemctl enable application_one.service

Ezután hajtsa végre az újraindítást, és az alkalmazásnak automatikusan el kell indulnia.

</:code3:>

Az alkalmazás nem indul el?

Ha az alkalmazás nem indul el automatikusan, bejelentkezhet a következővel:

sudo systemctl status application_one.service

Jelenítse meg az állapotot, és használja az információkat a hibaelhárításhoz. </:code4:>

Walter Prechtl

Walter Prechtl

Frissítve: 08. March 2024
Olvasási idő: 2 perc