Я пытаюсь настроить сервер TigerVNC для работы на Ubuntu GNOME 16.04.3 . Я установил последнюю версию ( 1.8 ) TigerVNC , используя этот пост . Если я запускаю сервер, используя:
vncserver :4 -geometry 1920x1080 -depth 24 -nolisten tcp -localhost
, он работает отлично. Я могу подключиться к дисплею 4 по SSH и иметь полный доступ к своему компьютеру, не открывая реальные (физические) дисплеи в моей лаборатории. Кроме того, я могу настроить геометрию в соответствии с дисплеем моего ноутбука, чтобы все было идеально.
Затем я попытался запустить сервер при запуске, используя systemd
, и нашел этот пост , чтобы помочь мне. Тем не менее, я использую рабочий стол GNOME, а настройки из блога предназначены для Unity. У меня не установлен Unity на моей машине, и я бы предпочел этого не делать.
Как изменить шаги 7 и 8 в этом посте, чтобы использовать рабочий стол GNOME вместо Unity? Я знаю, что это не работает, если они пропущены, поскольку я просто получаю черный экран при удаленном подключении.
Фактически, если есть другой способ обеспечить запуск vncserver
при запуске, он также будет принят в качестве ответа. TigerVNC действительно устанавливает скрипт с именем vncserver
в /etc/init.d/
, но я не могу запустить его, используя update-rc.d
Этот systemd
файл модуля работал для меня:
[Unit]
Description=Start TigerVNC Server at startup
After=syslog.target network.target
[Service]
Type=forking
User=user
PAMName=login
PIDFile=/home/user/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -depth 24 -geometry 1920x1080 -nolisten tcp -localhost
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Обязательно замените user
на ваше фактическое имя пользователя в строках, соответствующих User
и PIDFile
в [Service]
. [ 1125]
vncserver@.service
в /etc/systemd/system/
systemctl enable vncserver@4.service
, который создает файл символической ссылки vncserver@4.service
в /etc/systemd/system/multi-user.target.wants/
, указывающий на vncserver@.service
в /etc/systemd/system/
] systemctl start vncserver@4
Чтобы адаптировать его к вашим потребностям, используйте предпочитаемый номер дисплея вместо 4 ] (как я сделал) при включении. Кроме того, убедитесь, что вы инициализировали vncserver вне этого файла модуля службы, прежде чем запускать службу. Это обеспечит пароль и необходимые файлы (xstartup
и т. Д.) Будут созданы. Самый простой способ сделать это - запустить команду для ExecStart
в [Service]
в файле модуля. Для моего случая это означает:
vncserver :4 -depth 24 -geometry 1920x1080 -nolisten tcp -localhost
Источник: я адаптировал файл модуля из этого руководства .