HMI
Автозапуск приложения Qt при загрузке Raspberry Pi 4

Если вы создали приложение Qt или любое другое приложение для Raspberry Pi 4, зачастую есть необходимость, чтобы приложение запускалось сразу после перезапуска Raspberry. Это часто делается с помощью сценариев запуска, которые можно вводить в разных местах. Тем не менее, более разумно сделать это через systemd. Я использовал образ 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» также означает, что приложение не будет запускаться до тех пор, пока не будет установлено сетевое соединение.

Как сделать сервис известным системе.

Затем система должна быть проинформирована о том, что новый сервис должен быть активен:

sudo systemctl enable application_one.service

Затем выполните перезапуск, и приложение запустится автоматически.

Приложение не запускается?

Если приложение не запускается автоматически, вы можете отобразить состояние с помощью

sudo systemctl status application_one.service

и использовать отображаемую информацию, чтобы начать устранение неполадок.