Вопрос или проблема
Я настроил временный экземпляр 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. Проблема, с которой вы сталкиваетесь — "Уже запущен другой менеджер сессий", связана с тем, что в процессе инициализации может возникать конфликт с уже работающими процессами.
Анализ ситуации
-
Сравнение конфигураций: Ваша настройка на Debian 10 работала корректно с использованием файла
~/.vnc/xstartup
, который содержал строки для настройки переменных окруженияSESSION_MANAGER
иDBUS_SESSION_BUS_ADDRESS
. На Debian 12 эти переменные окружения могли не дать завершиться сессии Xfce. -
Версии пакетов: Вы используете
tigervnc-standalone-server
версии1.12.0+dfsg-8
, которая могла внести изменения в механизм инициализации сессии по сравнению с1.9.0+dfsg-3+deb10u3
.
Решение проблемы
Для решения проблемы попробуйте следующие шаги:
-
Редактирование файла 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 при изменении размера окна и других операциях.
-
Запуск VNC-сервера с отключением переменных окружения:
Попробуйте запустить сервер так:env -u SESSION_MANAGER -u DBUS_SESSION_BUS_ADDRESS vncserver :1 -geometry 1920x1080 -localhost no
Это гарантирует, что процесс не будет конфликтовать с уже запущенными переменными окружения.
-
Проверка логов:
Если после выполнения всех шагов вы получите сообщение об ошибке, убедитесь, что вы проверили логи по адресу~/.vnc/{hostname}:1.log
. Обратное сообщение может указать на другие проблемы.
Заключение
Если проблемы сохраняются, убедитесь, что все необходимые пакеты установлены и обновлены. Для Debian 12 могут потребоваться дополнительные зависимости или изменения конфигурации, которые отличаются от предыдущей версии. Важно также помнить, что конфигурация между версиями может измениться, следовательно, стоит проверять рекомендуемые настройки на официальных страницах и в документации.
Если указанные шаги не помогают, вы можете рассмотреть возможность использования другой графической оболочки или VNC-сервера на время решения проблемы.