Я должен запустить 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"
Как я могу изменить вышеупомянутый сценарий, чтобы заставить его работать и когда дисплей подключен и не подключен.
Я не думаю, что можно выполнить 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