Как я могу запустить QT приложение GUI на начальной загрузке без подключенного дисплея?

Я должен запустить QT, Приложение GUI в каждой системе запускает и выполняет его навсегда. Я создал системную службу для него.

Вот сервисное содержание файла:

QtGUIAPP.service

[Unit]
Description=QtGUIAPP

[Service]
Environment="DISPLAY=:0"
Environment="XAUTHORITY=/home/user/.Xauthority"
ExecStart=/usr/bin/sudo /home/user/QtGUIAPP --no-sandbox
Restart=always
[Install]
WantedBy=multi-user.target

Вышеупомянутое хорошо работает без любой проблемы.

Но когда я загружаю ПК без монитора и получаю доступ к нему удаленно, приложение, кажется, не работает. И я получаю ошибку в системном журнале как

 Invalid MIT-MAGIC-COOKIE-1 keyQStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'QXcbConnection: Could not connect to display :0Could not connect to any X display.
Oct 18 12:45:55 user systemd[1]: QtGUIAPP.service: Main process exited, code=exited, status=1/FAILURE
Oct 18 12:45:55 user systemd[1]: QtGUIAPP.service: Unit entered failed state.
Oct 18 12:45:55 user systemd[1]: QtGUIAPP.service: Failed with result 'exit-code'.
Oct 18 12:45:55 user avahi-daemon[799]: Host name conflict, retrying with user-2
Oct 18 12:45:55 user avahi-daemon[799]: Registering new address record for 10.0.7.15 on enp2s0.IPv4.
Oct 18 12:45:56 user systemd[1]: QtGUIAPP.service: Service hold-off time over, scheduling restart.

Я думаю, что проблема со строкой

 Environment="DISPLAY=:0"

Как я могу изменить вышеупомянутый сценарий, чтобы заставить его работать и когда дисплей подключен и не подключен.

0
задан 10 November 2018 в 11:54

1 ответ

Я не думаю, что можно выполнить QT без X, таким образом, необходимо работать X. Это не запустится по умолчанию, если монитор не будет обнаружен.

Я нашел [этот поток Форумов Ubuntu], который мог бы помочь Вам преобладать над проблемой не подключения монитора:

Я не являюсь настолько великим с Ubuntu (использование его в течение прошлых 2 лет), таким образом, могли бы быть другие опции сделать то же.

У меня была та же самая проблема - я хочу работать X на машине, которой (на данный момент) не присоединили монитор.

Используя драйвер Intel, X не прилагается мониторов и отказа:

(II) intel(0): Output VGA disconnected
(WW) intel(0): No outputs definitely connected, trying again...
(II) intel(0): Output VGA disconnected
(WW) intel(0): Unable to find initial modes
(EE) intel(0): No valid modes.
(II) UnloadModule: "intel"

Я споткнулся через решение, соединенное от нескольких различных потоков на этих и других форумах.

Сначала я должен был сделать основное xorg.conf файл, в котором я указал драйвер VESA, а не Intel один (см. нижнюю часть сообщения для моего xorg.conf)

Ведомый ко мне видящий другую ошибку:

(EE) VESA: Kernel modesetting driver in use, refusing to load
(WW) Falling back to old probe method for vesa
(EE) No devices detected.

Я затем должен был добавить nomodeset к моим параметрам загрузки GRUB (раньше был в /boot/grub/menu.lst но теперь в /etc/default/grub)

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

... и выполненный sudo update-grub.

С некоторыми основными настройками для (несуществующего) монитора результат состоит в том, что я получаю X выполнений без включенного монитора, с помощью драйвера VESA, и с достойным разрешением - который хорошо для того, для чего я хотел это.

xorg.conf файл:

Section "Monitor"
  Identifier   "Monitor0"
  HorizSync    31-81
  VertRefresh  56-75
EndSection

Section "Device"
  Identifier  "Card0"
  Driver      "vesa"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
EndSection
1
ответ дан 27 October 2019 в 07:41

Другие вопросы по тегам:

Похожие вопросы: