Raspberry Pi 4 autostart Qt application ในเวลาบูต

หากคุณสร้างแอปพลิเคชัน Qt - หรือแอปพลิเคชันอื่น ๆ - สําหรับ Raspberry Pi 4 คุณมักจะต้องการให้แอปพลิเคชันถูกเรียกทันทีหลังจากรีสตาร์ท Raspberry หลังจากแอปพลิเคชันเสร็จสมบูรณ์
สิ่งนี้มักจะพยายามด้วยสคริปต์เริ่มต้นที่สามารถป้อนได้ในที่ต่างๆ
อย่างไรก็ตามการตั้งค่านี้ผ่าน ระบบ มีเหตุผลมากกว่า ฉันใช้อิมเมจ raspbian-buster-lite และการติดตั้ง Qt ตามที่อธิบายไว้ใน Qt บน Raspberry Pi 4 เป็นจุดเริ่มต้น
แอ็พพลิเคชัน Qt อยู่ในไดเร็กทอรี "/home/pi/application" และมีชื่อว่า "application_one" ในตัวอย่างนี้

การสร้างไฟล์ .service

สิ่งแรกที่ต้องทําคือการสร้างไฟล์. service ในไดเร็กทอรี "/ etc / systemd / system":

sudo nano application_one.service

ตอนนี้ป้อนข้อมูลต่อไปนี้แล้ว:

[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

รายการจริงอธิบายตัวเอง แอปพลิเคชัน "application_one" (ExecStart =/home/pi/application/application_one) เริ่มต้นด้วยบัญชีผู้ใช้ "pi" (User=pi) รายการ "After=network-online.target" ยังคงระบุว่าแอปพลิเคชันเริ่มทํางานจนกว่าจะสร้างการเชื่อมต่อเครือข่าย

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

ทําให้ระบบรู้จักบริการ

จากนั้นคุณต้องบอกระบบว่าบริการใหม่ควรเปิดใช้งาน:

sudo systemctl enable application_one.service

จากนั้นทําการรีบูตและแอปพลิเคชันควรเริ่มต้นโดยอัตโนมัติ

</:code3:>

แอปพลิเคชันไม่เริ่มทํางาน?

หากแอปพลิเคชันไม่เริ่มทํางานโดยอัตโนมัติคุณสามารถเข้าสู่ระบบด้วย

sudo systemctl status application_one.service

แสดงสถานะและใช้ข้อมูลเพื่อแก้ไขปัญหา </:code4:>