TigerVNC Xfce не удается запустить на новой установке Debian 12 bookworm. “Другой менеджер сеансов уже запущен” Работал на Debian 10.

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

Я настроил временный экземпляр Debian 12 на ноутбуке для тестирования перед миграцией настольного компьютера с Debian 10 на 12. Единственное, что пока не работает, это экземпляр tigervnc, а это критично.

(Да, этот пост длинный, но я хотел убедиться, что у любого, кто его читает, есть достаточно информации, и чтобы минимизировать количество последующих вопросов)

Несколько лет назад я настроил tigervnc-standalone-server на системе Debian 10 amd64 с рабочим столом Xfce4, и с тех пор он работает безупречно. Очень стабилен, очень отзывчив. Однако сейчас настало время перейти на Debian 12, и я не могу заставить tigervnc работать на тестовой системе Debian 12, которую я настроил (установлено с использованием debian-12.2.0-amd64-DVD-1.iso)

Существующая конфигурация Debian 10, которая работает хорошо (см. ниже, что не работает):

Версия пакета:

Tigervnc-standalone-server 1.9.0+dfsg-3+deb10u3

Конфигурационные файлы:

testuser@system:~$ cat ~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4

(файл Xresources ниже пуст, поэтому строка xrdb выше, вероятно, ничего не делает)

testuser@system:~$ cat ~/.Xresources
testuser@system:~$ 

(геометрия в конфигурационном файле ниже указана в команде запуска, поэтому файл ниже также может не иметь значения)

testuser@system:~$ cat ~/.vnc/config
geometry=1920x1080
dpi=96

Успешный запуск:

testuser@system:~$ vncserver :1 -geometry 1920x1080 -localhost no

Новый рабочий стол 'system.org:1 (testuser)' на :1 на машине system.org

Запуск приложений, указанных в /home/testuser/.vnc/xstartup
Файл журнала: /home/testuser/.vnc/system.org:1.log

Используйте xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/testuser/.vnc/passwd system.org:1 для подключения к VNC-серверу.

testuser@system:~$ 

Примечания по использованию:

Если система Debian перезагрузится, я войду в учетную запись testuser, используя KVM, открою терминал и введу команду выше. Затем я выйду из KVM, и с этого момента буду использовать VNC Viewer (RealVNC) на компьютере с Windows для подключения к Debian. После первоначального входа в систему Debian я могу отключаться и повторно подключаться с помощью VNC-клиента по своему усмотрению, не выходя из рабочего стола пользователя Debian (домашняя среда, без перенаправления портов, минимальные проблемы с безопасностью при этом). Работает идеально. И да, я знаю, что мог бы настроить его для автозапуска при загрузке, но предпочитаю оставить эту часть вручную.

Новые попытки конфигурации Debian 12, ни одна из которых не работает:

Версия пакета:

tigervnc-standalone-server 1.12.0+dfsg-8

$ vncpasswd был выполнен, и создан пароль для того же пользователя, который вводит команду запуска. При использовании VNC для запуска только /usr/bin/xterm этот пароль принимается удаленным VNC-клиентом.

Конфигурационные файлы:

~/.Xresources файл: отсутствует (ранее не был нужен)

~/.vnc/config файл: такой же, как файл Debian 10 (определение геометрии и dpi, но геометрия заменяется командой vncserver)

~/.vnc/xstartup файл: пробовал несколько версий, ни одна из которых правильно не запускает рабочий стол Xfce4 на VNC. См. ниже для деталей.

Ниже приведены разные версии ~/.vnc/xstartup, которые я пробовал, с соответствующим выводом при попытке запустить сервер:

1 Оригинал, дублирующий файл Debian 10:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4

Журнал вывода команды $ vncserver:
=================== tail /home/sysuser/.vnc/testcase.nodomain.org:1.log ===================
/usr/bin/startxfce4: X сервер уже работает на дисплее :1

(process:2353): xfce4-session-CRITICAL **: 02:42:27.394: dbus-launch не найден, рабочий стол не будет работать правильно!
xfce4-session-Сообщение: 02:42:27.515: Агент аутентификации SSH уже запущен
gpg-agent: агент gpg уже запущен - новый не запускается
===========================================================================================

Запуск сеанса через '/home/sysuser/.vnc/xstartup' завершился слишком рано (< 3 секунд)!

2 Без unset DBUS:

#!/bin/bash
unset SESSION_MANAGER
startxfce4

Журнал вывода команды $ vncserver:
=================== tail /home/sysuser/.vnc/testcase.nodomain.org:1.log ===================
/usr/bin/startxfce4: X сервер уже работает на дисплее :1
xfce4-session-Сообщение: 01:46:16.716: Агент аутентификации SSH уже запущен
gpg-agent: агент gpg уже запущен - новый не запускается
===========================================================================================

Запуск сеанса через '/home/sysuser/.vnc/xstartup' завершился слишком рано (< 3 секунд)!

3 Без каких-либо unset:

#!/bin/bash
startxfce4

Журнал вывода команды $ vncserver:
=================== tail /home/sysuser/.vnc/testcase.nodomain.org:1.log ===================
/usr/bin/startxfce4: X сервер уже работает на дисплее :1
xfce4-session: Другой менеджер сеансов уже запущен
===========================================================================================

Запуск сеанса через '/home/sysuser/.vnc/xstartup' завершился с кодом 1!

Общие черты:

Во всех случаях выводы выше сопровождаются следующим:

Возможно, попробуйте что-то простое сначала, например,
    tigervncserver -xstartup /usr/bin/xterm
X-сессия завершилась с кодом 1!
Убийство процесса Xtigervnc с ID xxxx... успешно!

и когда я выполняю команду $ vncserver -list, она возвращает, что экземпляры не работают (заголовок без ничего под ним).

Суть VNC работает:

Я знаю, что VNC-сервер работает на базовом уровне, так как если я уменьшаю файл xstartup до ничего, кроме:

#!/bin/bash
/usr/bin/xterm

тогда команда $ vncserver -list покажет экземпляр X, я могу подключиться к нему из Windows-клиента, и окно терминала (но ничего другого) будет представлено. Так что просто дело в том, что Xfce4 не запускается правильно.

Есть ли идеи??

У меня была такая же проблема, как у вас. Я наконец нашел совет здесь, что это должно работать, если удалить SESSION_MANAGER и DBUS_SESSION_BUS_ADDRESS. В частности, у меня есть это в ~/.vnc/xstartup:

#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session xfce4-session 

и мне удалось запустить VNC-сервер с сеансом Xfce, выполнив

env -u SESSION_MANAGER -u DBUS_SESSION_BUS_ADDRESS  tigervncserver -xstartup .vnc/xstartup

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

Для решения проблемы с запуском TigerVNC с Xfce на новой установке Debian 12, вам нужно понять основные изменения, которые произошли между версиями Debian и TigerVNC. Проблема, с которой вы сталкиваетесь — "Уже запущен другой менеджер сессий", связана с тем, что в процессе инициализации может возникать конфликт с уже работающими процессами.

Анализ ситуации

  1. Сравнение конфигураций: Ваша настройка на Debian 10 работала корректно с использованием файла ~/.vnc/xstartup, который содержал строки для настройки переменных окружения SESSION_MANAGER и DBUS_SESSION_BUS_ADDRESS. На Debian 12 эти переменные окружения могли не дать завершиться сессии Xfce.

  2. Версии пакетов: Вы используете tigervnc-standalone-server версии 1.12.0+dfsg-8, которая могла внести изменения в механизм инициализации сессии по сравнению с 1.9.0+dfsg-3+deb10u3.

Решение проблемы

Для решения проблемы попробуйте следующие шаги:

  1. Редактирование файла xstartup:
    Ваш файл ~/.vnc/xstartup можно изменить следующим образом:

    #!/bin/sh
    [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    vncconfig -iconic &
    dbus-launch --exit-with-session startxfce4

    Объяснение:

    • dbus-launch запустит D-Bus для текущей сессии, что необходимо для корректной работы Xfce.
    • vncconfig -iconic позволяет корректно работать с VNC при изменении размера окна и других операциях.
  2. Запуск VNC-сервера с отключением переменных окружения:
    Попробуйте запустить сервер так:

    env -u SESSION_MANAGER -u DBUS_SESSION_BUS_ADDRESS vncserver :1 -geometry 1920x1080 -localhost no

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

  3. Проверка логов:
    Если после выполнения всех шагов вы получите сообщение об ошибке, убедитесь, что вы проверили логи по адресу ~/.vnc/{hostname}:1.log. Обратное сообщение может указать на другие проблемы.

Заключение

Если проблемы сохраняются, убедитесь, что все необходимые пакеты установлены и обновлены. Для Debian 12 могут потребоваться дополнительные зависимости или изменения конфигурации, которые отличаются от предыдущей версии. Важно также помнить, что конфигурация между версиями может измениться, следовательно, стоит проверять рекомендуемые настройки на официальных страницах и в документации.

Если указанные шаги не помогают, вы можете рассмотреть возможность использования другой графической оболочки или VNC-сервера на время решения проблемы.

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

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