Jos olet luonut Qt-sovelluksen - tai minkä tahansa muun sovelluksen - Raspberry Pi 4:lle, haluat usein, että sovellusta kutsutaan heti Vadelman uudelleenkäynnistyksen jälkeen sovelluksen valmistuttua.
Tätä yritetään usein aloitusskripteillä, jotka voidaan syöttää eri paikkoihin.
On kuitenkin järkevämpää asettaa tämä systemd : n kautta. Käytin lähtökohtana raspbian-buster-lite-kuvaa ja Qt-asennusta Qt:ssä kuvatulla tavalla Raspberry Pi 4:ssä .
Qt-sovellus sijaitsee hakemistossa "/home/pi/application", ja sen nimi on tässä esimerkissä "application_one".
.service-tiedoston luominen
Ensimmäinen asia on luoda .service-tiedosto hakemistoon "/etc/systemd/system":
sudo nano application_one.service
Tähän on nyt syötetty seuraava:
[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
Merkinnät ovat itse asiassa itsestään selviä. Sovellus "application_one" (ExecStart=/home/pi/application/application_one) käynnistetään käyttäjätilillä "pi" (User=pi). Merkintä "After=network-online.target" ilmaisee edelleen, että sovellus käynnistetään, kunnes verkkoyhteys on muodostettu.
</:code2:></:code1:>
Tee palvelu tunnetuksi järjestelmälle
Sitten sinun on kerrottava järjestelmälle, että uuden palvelun pitäisi olla aktiivinen:
sudo systemctl enable application_one.service
Suorita sitten uudelleenkäynnistys ja sovelluksen pitäisi käynnistyä automaattisesti.
</:code3:>
Sovellus ei käynnisty?
Jos sovellus ei käynnisty automaattisesti, voit kirjautua sisään
sudo systemctl status application_one.service
Näytä tila ja käytä tietoja vianmääritykseen. </:code4:>