Графический терминальный класс
Один из преподавателей на ВМК выразил желание поддерживать систему с графическими терминалами-тонкими клиентами. Предполагается, что студенты будут пользоваться системой, заходя в неё по сети из компьютерного класса и работая в графическом окружении.
Наиболее проверенными решениями подобной задачи являются X-протокол (XDMCP) и VNC.
TODO: почему не подошёл xdmcp
На помощь пришёл lightdm — он слушает на порту 5900 и на время каждого подключения открывает удалённый X-сеанс, вместо видеоаппаратуры использующий VNC-соединение.
Чтобы воспользоваться этой возможностью, нужно:
- Установить пакет lightdm и программу Xvnc:
# apt-get install lightdm /usr/bin/Xvnc
- По необходимости обеспечить запуск lightdm при старте системы:
# systemctl enable lightdm # systemctl set-default graphical.target
Дописать в /etc/lightdm/lightdm.conf.d/remote-server.conf:
[VNCServer] enabled=true command=Xvnc -SecurityTypes none width=1920 height=1080 depth=32
Параметр command позволяет передать серверу дополнительные параметры. По умолчанию сервер слушает на 0.0.0.0:5900.
- перезапустить lightdm, если он был уже запущен:
# systemctl restart lightdm
Теперь можно подключиться к серверу:
% vncviewer server
Во время тестирования решения в ALT-пакете lightdm была исправлена ошибка (34721, только в Sisyphus)
Пока не решённая проблема: lightdm при открытии сеанса для каждого пользователя пытается получить картинку из домашнего каталога. В нашем случае это 10000-14000 неуспешных access() к NFS-хранилищу. В случае 20-30 одновременных клиентов длительность ожидания соответствующим образом возрастает.