Что не так с моей попыткой настроить TightVNC как службу?

Вопрос или проблема

У меня установлен и работает TightVNC на виртуальном сервере Ubuntu 18.4, следуя этому руководству.
Сказано использовать nano и создать файл ‘unit’ под названием /etc/systemd/system/[email protected]. Затем указываются содержимое файла, и я проверил и перепроверил, но когда я пытаюсь запустить сервис с помощью:

systemctl start vncserver@1

Я получаю ошибку, в которой говорится:

Job for [email protected] failed because the control process exited with error code.

Затем я запускаю:

systemctl status [email protected]

и получаю этот вывод:

[email protected] - Start TightVNC server at startup
   Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2020-08-28 19:13:08 UTC; 12h ago

Aug 28 19:13:08 BradysApp systemd[1]: Starting Start TightVNC server at startup...
Aug 28 19:13:08 BradysApp vncserver[1232]: Can't find file /home/brady/.vnc/BradysApp:1.pid
Aug 28 19:13:08 BradysApp vncserver[1232]: You'll have to kill the Xtightvnc process manually
Aug 28 19:13:08 BradysApp systemd[1]: [email protected]: Control process exited, code=exited status=2
Aug 28 19:13:08 BradysApp systemd[1]: [email protected]: Failed with result 'exit-code'.
Aug 28 19:13:08 BradysApp systemd[1]: Failed to start Start TightVNC server at startup.

Мой файл unit выглядит так:

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=brady
Group=brady
WorkingDirectory=/home/brady
PIDFile=/home/brady/.vnc/%H:%i.pid
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Пользователь brady – мой нерутовый пользователь и работает нормально, так что это не проблема.

Есть какие-нибудь идеи или предложения, что может быть не так? Я полный новичок в Linux, работаю в веб-терминале Digital Ocean VPS.

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

Параметр Group должен быть установлен в группу в вашей системе. Это не то же самое, что ваше имя пользователя в общем случае. Вы можете использовать ll (псевдоним для команды ls -l), чтобы проверить, какая группа должна быть установлена.

Group должен быть установлен в users в примере ниже:

-rw-------  1 awen users    406 Sep 26 07:15 .Xauthority
-rw-r--r--  1 awen users   1600 Apr  9  2020 .Xdefaults
-rw-r--r--  1 awen users     80 Sep 23 10:22 .bash_aliases
-rw-------  1 awen users   8440 Sep 26 07:23 .bash_history

Ответ или решение

Настройка TightVNC как системной службы может быть сложной задачей, особенно для новичков в Linux. Давайте разберем вашу ситуацию и найдем возможные проблемы.

Проблемы в настройке

  1. Ошибки при создании PID-файла:

    • В выводе ошибок указано: Can't find file /home/brady/.vnc/BradysApp:1.pid. Это значит, что система не может найти или создать этот файл.
    • Убедитесь, что директория /home/brady/.vnc/ существует и права на эту директорию соответствуют пользователю brady.
  2. Использование переменных в Unit-файле:

    • Возможно, ошибка в синтаксисе переменной %H:%i.pid. Убедитесь, что вы правильно указываете место и формат переменной в файле службы.
  3. Параметры пользователя и группы:

    • Вы использовали brady как имя группы, но это может быть вашим именем пользователя, а не группой.
    • Чтобы выяснить, какая группа должна быть указана, выполните команду ls -l /home/brady/ и найдите вашу группу. Обычно это может быть users.
  4. Ошибка выполнения команды vncserver:

    • Обратите внимание на команды ExecStartPre и ExecStart. Если vncserver не установлен в этом пути, необходимо убедиться, что путь к vncserver указан правильно.
    • Проверьте, удовлетворяют ли ваши команды нужные параметры и работают ли они корректно вручную.
  5. Права доступа и зависимости:

    • Убедитесь, что необходимые зависимости, такие как сетевые службы, уже запущены к моменту выполнения вашего Unit-файла. Параметр After=syslog.target network.target может нуждаться в корректировке в зависимости от конфигурации вашей системы.

SEO Оптимизация и Контекст

Для лучшего SEO, учтите следующие моменты:

  • Используйте фразы, такие как "Настройка TightVNC на Ubuntu", "ошибка в systemd", и "PID-файл недоступен".
  • Структурируйте ваш ответ так, чтобы он был полезным для пользователей, занимающихся подобной настройкой, например, обеспечив шаги по диагностике и исправлению ошибок.

Заключение

Следуя вышеуказанным рекомендациям, вы, вероятно, сможете исправить проблему с настройкой TightVNC как системной службы. Убедитесь, что права доступа, конфигурации и зависимости правильно согласованы. Если проблема сохраняется, просмотрите журналы ошибок для дополнительной информации. Использование команд journalctl -xe может предоставить более детальные сведения об ошибках systemd.

Оцените материал
Добавить комментарий

Капча загружается...