Я пытаюсь настроить TigerVNC Server на Ubuntu GNOME 16.04.3. Я установил последнюю версию (1.8) TigerVNC, используя эту запись. Если я запускаю сервер, используя: vncserver :4 -geometry 1920x1080 -depth 24 -nolisten tcp -localhost
, он работает отлично. Я могу подключиться к дисплею 4 через SSH и иметь полный доступ к моему компьютеру, не открывая реальные (физические) дисплеи в моей лаборатории.
Затем я попытался запустить сервер при запуске, используя systemd, и я нашел Ubuntu GNOME 16.04.3 , чтобы помочь мне. Тем не менее, я запускаю рабочий стол GNOME, а настройки из блога для Unity. У меня нет Unity, установленного на моей машине, и я бы предпочел избежать этого.
Как мне изменить шаги 7 и 8 в этой статье, чтобы использовать рабочий стол GNOME вместо Unity? Я знаю, что это не работает, если они пропускаются, поскольку я просто получаю черный экран, когда я подключаюсь удаленно.
На самом деле, если есть еще один способ обеспечить vncserver запускается при запуске, что также будет принято как ответ. TigerVNC устанавливает скрипт под названием vncserver в /etc/init.d/, но я не могу запустить его с помощью update-rc.d
Этот файл systemd Unit работал для меня:
[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].
Я сохранил этот файл как vncserver@.service в /etc/systemd/system/. Включил его с помощью systemctl enable vncserver@4.service, который создает файл symlink vncserver@4.service в /etc/systemd/system/multi-user.target.wants/, указывающий на vncserver@.service в /etc/systemd/system/. Начнул сервис с systemctl start vncserver@4Чтобы приспособить его к вашим потребностям, пожалуйста, используйте предпочитаемый номер дисплея вместо 4 (как и я) при включении. Кроме того, перед запуском службы убедитесь, что вы инициализировали vncserver вне этого файла Unit. Это обеспечит пароль, и создадут необходимые файлы (xstartup и т. Д.). Самый простой способ сделать это - запустить команду против ExecStart в [Service] в файле Unit. Для моего случая это означает:
vncserver :4 -depth 24 -geometry 1920x1080 -nolisten tcp -localhost
Источник: я адаптировал файл Unit из этого руководства.
Этот файл systemd Unit работал для меня:
[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].
Я сохранил этот файл как vncserver@.service в /etc/systemd/system/. Включил его с помощью systemctl enable vncserver@4.service, который создает файл symlink vncserver@4.service в /etc/systemd/system/multi-user.target.wants/, указывающий на vncserver@.service в /etc/systemd/system/. Начнул сервис с systemctl start vncserver@4Чтобы приспособить его к вашим потребностям, пожалуйста, используйте предпочитаемый номер дисплея вместо 4 (как и я) при включении. Кроме того, перед запуском службы убедитесь, что вы инициализировали vncserver вне этого файла Unit. Это обеспечит пароль, и создадут необходимые файлы (xstartup и т. Д.). Самый простой способ сделать это - запустить команду против ExecStart в [Service] в файле Unit. Для моего случая это означает:
vncserver :4 -depth 24 -geometry 1920x1080 -nolisten tcp -localhost
Источник: я адаптировал файл Unit из этого руководства.
Этот файл systemd Unit работал для меня:
[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].
Я сохранил этот файл как vncserver@.service в /etc/systemd/system/. Включил его с помощью systemctl enable vncserver@4.service, который создает файл symlink vncserver@4.service в /etc/systemd/system/multi-user.target.wants/, указывающий на vncserver@.service в /etc/systemd/system/. Начнул сервис с systemctl start vncserver@4Чтобы приспособить его к вашим потребностям, пожалуйста, используйте предпочитаемый номер дисплея вместо 4 (как и я) при включении. Кроме того, перед запуском службы убедитесь, что вы инициализировали vncserver вне этого файла Unit. Это обеспечит пароль, и создадут необходимые файлы (xstartup и т. Д.). Самый простой способ сделать это - запустить команду против ExecStart в [Service] в файле Unit. Для моего случая это означает:
vncserver :4 -depth 24 -geometry 1920x1080 -nolisten tcp -localhost
Источник: я адаптировал файл Unit из этого руководства.