У меня есть приложение Python, которое мне нужно запустить при запуске Ubuntu.
Я также хотел бы, чтобы это приложение запускалось снова, если оно закрывается/вылетает.
Это то, с чем может справиться Systemd, но проблема в том, что мое приложение открывает окно с потоковой передачей камеры.
Из-за этого служба systemd выдает ошибки:
21 ноября 19:42:54 Xavier-AGX env[14289]: 2021-11-21 19:42:54,558 Подключен к серверу mysql: X.X.X.X
21 ноября 19:42:55 Xavier-AGX env[14289]: qt.qpa.xcb: не удалось подключиться к дисплею
21 ноября 19:42:55 Xavier-AGX env[14289]: qt.qpa.plugin: не удалось загрузить плагин платформы Qt «xcb» в «/home/atc/.local/lib/python3.6/site-packages». /cv2/qt/plugins", несмотря на то, что он был найден.
21 ноября, 19:42:55 Xavier-AGX env[14289]: не удалось запустить это приложение, так как не удалось инициализировать плагин платформы Qt. Переустановка приложения может решить проблему.
ноя 21 19:42:55 Xavier-AGX env[14289]: Доступные плагины платформы: xcb.
21 ноября 19:42:56 Xavier-AGX systemd[1]: app_cam0.service: основной процесс завершен, код = дамп, статус = 6/ABRT
21 ноя 19:42:56 Xavier-AGX systemd[1]: app_cam0.service: Ошибка с результатом 'core-dump'.
21 ноября, 19:42:57 Xavier-AGX systemd[1]: app_cam0.service: Время задержки обслуживания истекло, запланирован перезапуск.
21 ноября, 19:42:57 Xavier-AGX systemd[1]: app_cam0.service: запланированное задание перезапуска, счетчик перезапусков равен 3.
21 ноября 19:42:57 Xavier-AGX systemd[1]: служба остановлена для запуска приложения (камера 0).
21 ноя 19:42:57 Xavier-AGX systemd[1]: запущена служба для запуска приложения (камера 0).
Альтернативой является использование CRON. Существует флаг (@reboot), который заставляет CRON запускать ваше приложение во время загрузки, но в случае сбоя приложения он не запустит его снова. :(
Так что я могу сделать ?
Есть ли решение для запуска приложения с графическим интерфейсом в качестве службы systemd?
Заранее спасибо.