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