اگر شما یک برنامه 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:>