Ошибка при запуске tigervnc-server, код 98 – fedora27

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

после установки, создания пользователя, редактирования и т. д., при попытке запустить службу я получаю (после удаления .Xfiles из tmp, предложение от @SivaPrasath)

systemctl start vncserver@:1.service
Job for vncserver@:1.service failed because the control process exited with error code.
See "systemctl  status vncserver@:1.service" and "journalctl  -xe" for details.

systemctl говорит:

[root@localhost ~]# systemctl  status vncserver@:1.service
● vncserver@:1.service - Служба удаленного рабочего стола (VNC)
   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; disabled; vendor preset: disabled)
   Active: failed (Result: protocol) since Tue 2018-05-15 19:26:13 -03; 1min 36s ago
  Process: 4284 ExecStart=/usr/sbin/runuser -l r_vnc -c /usr/bin/vncserver :1 -geometry 1280x1024 (code=exited, status=0/SUCCESS)
  Process: 4282 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

May 15 19:26:10 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)...
May 15 19:26:13 localhost.localdomain systemd[1]: vncserver@:1.service: PID file /home/r_vnc/.vnc/localhost.localdomain:1.pid not readable (yet?) after start: Permission denied
May 15 19:26:13 localhost.localdomain systemd[1]: Failed to start Remote desktop service (VNC).
May 15 19:26:13 localhost.localdomain systemd[1]: vncserver@:1.service: Unit entered failed state.
May 15 19:26:13 localhost.localdomain systemd[1]: vncserver@:1.service: Failed with result 'protocol'.

journalctl говорит:

    - Unit UNIT has begun starting up.
May 15 16:42:15 localhost.localdomain systemd[13394]: Received SIGRTMIN+24 from PID 13453 (kill).
May 15 16:42:15 localhost.localdomain systemd[1]: Stopped User Manager for UID 1002.
-- Subject: Unit [email protected] has finished shutting down
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit [email protected] has finished shutting down.
May 15 16:42:15 localhost.localdomain audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=user@1002 comm="systemd" exe="/usr/lib/systemd/systemd" hostname
May 15 16:42:15 localhost.localdomain systemd[1]: Removed slice User Slice of r_vnc.
-- Subject: Unit user-1002.slice has finished shutting down
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit user-1002.slice has finished shutting down.

Как исправить ошибку?

Если вы неожиданно завершили работу vncserver или он завершился с ошибкой, пожалуйста, прочитайте /var/log/messages, и вы можете найти файлы .X с ошибками, как показано ниже.
Сначала убедитесь, что процесс Xvnc не работает.

Aug 13 12:11:11 www runuser: Warning: www.example.com:2 is taken because of /tmp/.X2-lock
...
Aug 13 12:12:52 www runuser: Warning: www.example.com:2 is taken because of /tmp/.X22-unix/X2

затем удалите

# rm -f /tmp/.X2-lock
# rm -f /tmp/.X22-unix/X2

И установите пароль VNC для пользователя, если он не был установлен. После установки пароля вы должны иметь возможность запустить VNC сервер, как ожидалось.

# su - <user name>
$ vncpasswd

и перезапустите ваш vncserver.

# systemctl restart vncserver@:2.sevice

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

Ошибка "error starting tigervnc-server code 98" в Fedora 27 связана с неудачным запуском VNC-сервера из-за конфликта портов или файлов .Xlock. Давайте разберемся с этой проблемой, изучив возможные причины и предлагая решения.

Теория

Ошибка Code 98 обычно указывает на то, что попытка запуска VNC-сервера заканчивается неудачно из-за того, что порт, на котором он должен запуститься, уже занят. Это может произойти, если на этом порту уже работает другая сессия VNC или процесс Xvnc не был корректно завершен ранее.

VNC-серверы используют X-серверы для своей работы, каждому из которых присвоен уникальный номер дисплея, начиная с 1. Этот дисплей использует порт 5900+N, где N — номер дисплея. Таким образом, для дисплея :1 используется порт 5901.

Также существуют файлы блокировок в директории /tmp (например, /tmp/.X1-lock), которые предотвращают повторные попытки запуска процесса на одном и том же дисплее.

Пример

В вашем случае ошибка возникает после попытки запустить сервис с помощью команды:

systemctl start vncserver@:1.service

Система сообщает, что подтягивает служебный файл, но не удается прочитать PID-файл по причине "Permission denied" (отказано в доступе). Это указывает либо на проблемы с правами доступа, либо на уже работающий процесс, блокирующий доступ.

В выводе journalctl можно также заметить ошибки, связанные с файлами .X⟩!lock и X22-unix. Эти сообщения говорят о том, что VNC-сервер не может начать работу из-за существующих блокировок.

Применение

Для решения этой проблемы можно последовать таким шагам:

  1. Проверка работающих процессов VNC:
    Убедитесь, что предыдущие процессы Xvnc не работают. Сделайте это с помощью команды:

    ps aux | grep Xvnc

    Если есть активные процессы, завершите их:

    kill -9 <PID of the process>
  2. Удаление устаревших файлов блокировки:
    Очистите файлы блокировок, чтобы исключить конфликты с портами:

    rm -f /tmp/.X1-lock
    rm -f /tmp/.X11-unix/X1
  3. Установка пароля VNC пользователя:
    Убедитесь, что для пользователя установлен пароль:

    su - <имя пользователя>
    vncpasswd

    Это необходимо выполнить, так как без пароля запуск будет невозможен.

  4. Проверка прав доступа:
    Убедитесь, что VNC-сервер может создать PID-файл. Проверьте его права доступа:

    ls -l /home/<имя пользователя>/.vnc

    Если они недостаточны, измените их:

    chown <имя пользователя>:<группа> /home/<имя пользователя>/.vnc
    chmod 755 /home/<имя пользователя>/.vnc
  5. Перезапуск службы:
    Попробуйте снова запустить службу VNC-сервера:

    systemctl restart vncserver@:1.service
  6. Дополнительные шаги отладки:
    Если проблема не решена, обратитесь к логам для получения более детальной информации:

    journalctl -xe

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

Следуя этим шагам, вы сможете исправить ошибку Code 98 и успешно запустить TigerVNC-сервер. Если проблема продолжается, возможно, стоит рассмотреть обновление до более новой версии Fedora или TigerVNC, так как это может упростить использование механизмов системы через более современные исправления и улучшения в ПО.

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

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