Sekiranya anda telah membuat aplikasi Qt - atau mana-mana aplikasi lain - untuk Raspberry Pi 4, anda sering mahu permohonan itu dipanggil sebaik sahaja memulakan semula Raspberry selepas permohonan selesai.
Ini sering dicuba dengan skrip permulaan yang boleh dimasukkan di pelbagai tempat.
Walau bagaimanapun, adalah lebih munasabah untuk menetapkan ini melalui sistem. Saya menggunakan imej raspbian-buster-lite dan pemasangan Qt seperti yang diterangkan dalam Qt pada Raspberry Pi 4 sebagai titik permulaan.
Aplikasi Qt terletak di direktori "/home/pi/application" dan dinamakan "application_one" dalam contoh ini.

Mencipta fail .service

Perkara pertama yang perlu dilakukan ialah membuat fail .service dalam direktori "/etc/systemd/system":

sudo nano application_one.service

Berikut kini dimasukkan ke sini:

[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

Penyertaan sebenarnya adalah penjelasan sendiri. Aplikasi "application_one" (ExecStart=/home/pi/application/application_one) dimulakan dengan akaun pengguna "pi" (User=pi). Entri "Selepas=network-online.target" masih menyatakan bahawa aplikasi dimulakan sehingga sambungan rangkaian ditubuhkan.

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

Jadikan perkhidmatan diketahui oleh sistem

Kemudian anda perlu memberitahu sistem bahawa perkhidmatan baru harus aktif:

sudo systemctl enable application_one.service

Kemudian lakukan but semula dan aplikasi harus bermula secara automatik.

</:code3:>

Permohonan tidak bermula?

Jika aplikasi tidak bermula secara automatik, anda boleh log masuk dengan

sudo systemctl status application_one.service

Paparkan status dan gunakan maklumat untuk menyelesaikan masalah. </:code4:>

Walter Prechtl

Walter Prechtl

Dikemas kini pada: 08. March 2024
Masa membaca: 2 minutes