Сидеть на одном компьютере и делать это с другого виртуального терминала, на котором работает X-сервер, не работает.
В-108: Я использую виртуальные терминалы Linux (VT) для реализации «быстрого переключения пользователей» между сеансами пользователей (например, Бетти на Ctrl-Alt-F7, Бобби на Ctrl-Alt-F8, а Сид на Ctrl-Alt -F1: они используют эти нажатия клавиш для переключения между своими сеансами.) Почему вид в средстве просмотра VNC, подключенном к x11vnc, либо полностью черный, не обновляется, либо пиксели испорчены, если X-сеанс, к которому подключен x11vnc, не находится в активный VT?
Похоже, это связано с тем, что приложения (процессы X-сервера в этом случае) должны «хорошо играть», если они не находятся на активном VT (иногда его называют VC для виртуальной консоли). То есть они не должны читать с клавиатуры. или мышь или управлять дисплеем видео, если у них нет активного VT. Учитывая, что кажется, что вызов XGetImage () должен в конечном итоге получить данные кадрового буфера от самого видеооборудования, было бы разумно, чтобы опрос x11vnc не работал, если сеанс X не имел активного управления VT.
Кажется, нет простого способа обойти это. Даже xwd (1) в этом случае не работает (попробуйте.) Что-то нужно сделать на более низком уровне, скажем, на XFree86 / Xorg X-сервере. Кроме того, использование теневого кадрового буфера (копия кадрового буфера видео хранится в основной памяти), по-видимому, не решает проблему (последняя проверка 2007 г.)
Если никто не сидит за рабочей станцией и вы просто хотите удаленно переключить VT на тот, который связан с вашим сеансом X (чтобы x11vnc мог правильно его опрашивать), можно использовать команду chvt (1), например, «chvt 7» для VT # 7.