Залача: оттранслировать X-server на другую машину.
Обозначения:
ИПС - IP машины, с которой надо получить вывод,
ИПК - рабочая машина
Итак.
В начале не забываем: чтобы кто-то мог подключиться к нашему локальному Х-серверу, необходимо это разрешить:
xhost + ИПС
Это единоразовая операция, которая не сохраняется между перезагрузками локального Х-сервера!
Теперь настраиваем удаленную машину.
Нам необходим специальный Х-сервер:
Xnest, который является клиентом для другого Х-сервера и в то-же время сервером для "своих" приложений.
В slackware-current это пакет x11-xnest-6.9.0-i486-3.tgz - ставим его и переназначаем симлинк:
cd /usr/X11R6/bin
rm X
ln -s Xnest X
Поскольку я использую KDE, то настройка будет производиться именно его kdm.
В каталоге /opt/kde/share/config/kdm ищем файл kdmrc и правим строку:
#ServerCmd=/usr/X11R6/bin/X -br
ServerCmd=/usr/X11R6/bin/Xfake -display ИПК:0 -br
т.е. вводим параметр display
Теперь создаем файл
/usr/X11R6/bin/Xfake:
#!/bin/sh
N=`echo $* | sed -r 's/ vt. / /'`
exec /usr/X11R6/bin/X $N
необходимость его обусловлена тем, что при штатном запуске Х-сервера, kdm передает ему параметр vt7 (указывающий на каком локальном терминале запускаться). Но Xnest этот параметр не понимает и его надо удалить.
Всё. Теперь командуем
init 4
(в slackware 4-й run-level - это запуск kdm, в других дистрах это может быть 5-й run-level)
и получаем на рабочей машинке в окошечке запущенный на удаленной машине Х-сервер.
PS. Возникает вопрос: А почему просто не переопределить переменную DISPLAY и не запускать приложения так?
На это есть несколько причин:
- если надо запустить просто приложение, то да, можно и таким образом перенаправить вывод. Однако, приложение будет знать, что вывод транслируется на другую машину. В данном же случае, приложению "кажется" что вывод идет только локально (для приложения будет DISPLAY=:0.0).
- если захочется так запустить весь КДЕ, то он "захочет" взять полный контроль над вашим Х-сервером. Ну а 2 мэнеджера, дерущихся за один Х-сервер ни к чему хорошему не приведут (в процессе тестов, у меня просто "упал" локальный KDE, а вместе с ним и локальный Х-сервер)
"No! Try not! Do. Or do not. There is no try." -- Yoda