Tôi có một ứng dụng python mà tôi cần khởi chạy khi khởi động Ubuntu
Tôi cũng muốn ứng dụng đó được khởi chạy lại nếu nó đóng/gặp sự cố.
Đó là điều mà Systemd có thể xử lý, nhưng vấn đề là ứng dụng của tôi mở một cửa sổ có camera phát trực tuyến.
Do đó, một dịch vụ systemd ném lỗi:
ngày 21 tháng 11 19:42:54 Xavier-AGX env[14289]: 21-11-2021 19:42:54,558 Đã kết nối với máy chủ mysql: X.X.X.X
ngày 21 tháng 11 19:42:55 Xavier-AGX env[14289]: qt.qpa.xcb: không thể kết nối để hiển thị
ngày 21 tháng 11 19:42:55 Xavier-AGX env[14289]: qt.qpa.plugin: Không thể tải plugin nền tảng Qt "xcb" trong "/home/atc/.local/lib/python3.6/site-packages /cv2/qt/plugins" mặc dù nó đã được tìm thấy.
ngày 21 tháng 11 19:42:55 Xavier-AGX env[14289]: Ứng dụng này không khởi động được vì không thể khởi tạo plugin nền tảng Qt. Cài đặt lại các ứng dụng có thể khắc phục vấn đề này.
ngày 21 tháng 11 19:42:55 Xavier-AGX env[14289]: Các plugin nền tảng khả dụng là: xcb.
ngày 21 tháng 11 19:42:56 Xavier-AGX systemd[1]: app_cam0.service: Quá trình chính đã thoát, mã=kết xuất, trạng thái=6/ABRT
ngày 21 tháng 11 19:42:56 Xavier-AGX systemd[1]: app_cam0.service: Không thành công với kết quả 'core-dump'.
ngày 21 tháng 11 19:42:57 Xavier-AGX systemd[1]: app_cam0.service: Hết thời gian tạm dừng dịch vụ, lên lịch khởi động lại.
ngày 21 tháng 11 19:42:57 Xavier-AGX systemd[1]: app_cam0.service: Công việc khởi động lại theo lịch trình, bộ đếm khởi động lại ở mức 3.
ngày 21 tháng 11 19:42:57 Xavier-AGX systemd[1]: Đã dừng Dịch vụ để khởi chạy ứng dụng (Máy ảnh 0).
ngày 21 tháng 11 19:42:57 Xavier-AGX systemd[1]: Đã bắt đầu Dịch vụ để khởi chạy ứng dụng (Máy ảnh 0).
Một cách khác là sử dụng CRON. Có một cờ (@reboot), làm cho CRON chạy ứng dụng của bạn khi khởi động, nhưng trong trường hợp ứng dụng gặp sự cố, nó sẽ không khởi chạy lại ứng dụng đó. :(
Vậy tôi có thể làm gì ?
Có giải pháp nào để chạy ứng dụng GUI dưới dạng dịch vụ systemd không?
Cảm ơn trước.