Raspberry Pi 4 Autostart Qt برنامه در زمان بوت

اگر شما یک برنامه Qt یا هر برنامه دیگری برای Raspberry Pi 4 ایجاد کرده اید، اغلب می خواهید برنامه بلافاصله پس از راه اندازی مجدد Raspberry پس از اتمام برنامه فراخوانی شود.
این اغلب با اسکریپت های شروع می شود که می تواند در مکان های مختلف وارد شود.
با این حال، منطقی تر است که این کار را از طریق systemd انجام دهید . من از یک تصویر raspbian-buster-lite و نصب Qt همانطور که در Qt در Raspberry Pi 4 به عنوان نقطه شروع توصیف شده است استفاده کردم.
برنامه Qt در دایرکتوری "/home/pi/application" قرار دارد و در این مثال "application_one" نامگذاری شده است.

ایجاد یک فایل .service

اولین کاری که باید انجام دهید این است که یک فایل .service را در دایرکتوری "/etc/systemd/systemd" ایجاد کنید:

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