LINUX.ORG.RU

Не запускается автоматически приложения на распбери пи.

 


0

1

Попытался сделать автозапуск приложения написаного в qt. Для этого сделал следующие

  1. /etc/systemd/system создал nano application_one.service
  2. В него добавил
[Unit]

Description=Qt application autostart
After=graphical.target
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/Qt_Projects
ExecStart=/home/pi/Qt_Projects/kiab

[Install]
WantedBy=multi-user.target
  1. После systemctl enable application_one.service

  2. перезагрузка. Приложение не запустилось.

Вот что выдало:

root@pi:~# systemctl status application_one.service
● application_one.service - Qt application autostart
   Loaded: loaded (/etc/systemd/system/application_one.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2022-09-15 14:16:05 +07; 56s ago
  Process: 445 ExecStart=/home/pi/Qt_Projects/kiab (code=exited, status=203/EXEC)

Main PID: 445 (code=exited, status=203/EXEC)
сен 15 14:16:05 pi systemd[1]: Started Qt application autostart.
сен 15 14:16:05 pi systemd[445]: application_one.service: Failed to execute command: Permission denied
сен 15 14:16:05 pi systemd[445]: application_one.service: Failed at step EXEC spawning /home/pi/Qt_Projects/kiab: Permission denied
сен 15 14:16:05 pi systemd[1]: application_one.service: Main process exited, code=exited, status=203/EXEC
сен 15 14:16:05 pi systemd[1]: application_one.service: Failed with result 'exit-code'.


Последнее исправление: Dimez (всего исправлений: 2)

Для начала - у приложения не хватает прав.

Зачем такие сложности? Если приложение на кутях, значит оно должно запускаться после старта ДЕ.

Не проще будет создать desktop файл в ~/.config/autostart?

utanho ★★★★★
()
Ответ на: комментарий от Alex_Golubev

Вы пытаетесь от пользователя запусить файл из /etc. Это так не работает.

Поместите файл в -/.config/systemd/user/

utanho ★★★★★
()
Последнее исправление: utanho (всего исправлений: 1)

Автозапуск через systemd - он для демонов, «служб» в терминологии windows, тех что висят фоном и что то там делают, с юзером интерактивно не общаясь.

Графическое приложение с мордой на qt или на чём либо ещё нужно запускать во время или сразу после старта графической среды пользователя. Для этого в графической среде есть соответствующие штатные способы.

Запускать через systemd такие приложения можно, но не очень правильно идеологически. И сложнее чем .desktop файл в нужное место положить. К сожалению у меня малины нет и я не знаю куда в ней нужно его класть, но вангую что это гуглится, и что это место в домашнем каталоге пользователя, а не в общесистемном /etc

Jameson ★★★★★
()
Ответ на: комментарий от Alex_Golubev

Как можно добавить права?

смотрим текущие права ls /home/pi/Qt_Projects/kiab
командой chmod a+x ... добавляем отсутствующие права (право чтения и право выполнения).
Вот только наличие всех прав не поможет - поменяется только сообщение об ошибке, т.к. в момент выполнения юнита systemd application_one.service еще не запущена графическая подсистема!
Но вообще легко гуглится автозапуск GUI App в raspbian – https://www.google.com/search?q=raspberry+pi+autostart+gui+program

sigurd ★★★★★
()