Запустить приложение GUI с systemd до входа в систему (после запуска X)?

1648
user3671607

Я пытаюсь запустить сервер TightVNC на компьютере с Ubuntu, используя systemd. Файл модуля (/etc/systemd/system/tiger.service) выглядит следующим образом:

[Unit] Description=Tiger VNC server After=display-manager.service  [Service] Type=simple Environment=XAUTHORITY=/home/myusername/.Xauthority ExecStart=/usr/bin/sudo -H -u myusername bash -c '/usr/bin/x0vncserver -rfbport 5901 -PasswordFile path-to-passwd-file -PollingCycle 30 -AlwaysShared -display :0' 

Я не могу подключиться к серверу VNC и systemctl status tiger.serviceвозвращает:

Jun 01 03:12:49 ubuntu systemd[1]: Started Tiger VNC server. Jun 01 03:12:49 ubuntu sudo[958]: root : TTY=unknown ; PWD=/ ; USER=myusername ; COMMAND=/bin/bash -c /opt/rmm-agent/x0vncserver -rfbport 5901 -PasswordFile /opt/rmm-agent Jun 01 03:12:49 ubuntu sudo[958]: pam_unix(sudo:session): session opened for user myusername by (uid=0) Jun 01 03:12:49 ubuntu sudo[958]: /usr/bin/x0vncserver: unable to open display ":0" Jun 01 03:12:49 ubuntu systemd[1]: tiger.service: Main process exited, code=exited, status=1/FAILURE Jun 01 03:12:49 ubuntu systemd[1]: tiger.service: Unit entered failed state. Jun 01 03:12:49 ubuntu systemd[1]: tiger.service: Failed with result 'exit-code'. 

Если я запускаю его с systemctl start tiger.serviceконсоли, все работает нормально, я могу подключиться к серверу VNC.

Я попытался Requires=вместо After=и graphical.targetвместо display-manager.service. Я получаю то же самое unable to open display ":0"во всех случаях.

0
`ExecStart = sudo`? Вы знаете, что есть настройка `User =`, верно? grawity 8 лет назад 1
Кроме того, какой менеджер дисплеев вы используете? (Я думаю, LightDM из Ubuntu) grawity 8 лет назад 0
Я использую LightDM, да, но это должно работать и на других дистрибутивах. В настоящее время использую Ubuntu для тестирования, потому что мне это удобнее всего. user3671607 8 лет назад 0
Чего вы на самом деле пытаетесь достичь? Создание терминального сервера? Или разрешить доступ к сеансу консоли? Daniel B 8 лет назад 0

1 ответ на вопрос

0
Eoin McMahon

Возможно, в вашем пользовательском каталоге нет XAuthority до тех пор, пока вы не войдете в систему. Есть некоторая информация о том, где можно найти сайт документации по x11vnc. XAuthority существует только для root, в каталоге, который зависит от диспетчера отображения и версии Ubuntu, но есть несколько хороших подсказок.

В настоящее время я пытаюсь автоматически запустить VNC-сервер в Kubuntu 16.04, и мой файл авторизации находится по адресу:

/var/run/lightdm/root/:0 

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