หากคุณสร้างแอปพลิเคชัน 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:>