URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 81075
[ Назад ]

Исходное сообщение
"Виндовые GUI приложения на сервере"

Отправлено mikra , 08-Июл-08 20:29 
Здравствуйте.

У меня есть linux сервер, на котором нужно запускать несколько виндовых прог с GUI в качестве демонов. Логин пользователей на сервер не предполагается. Если кто такое делал наставьте плиз на путь истиный :) Сейчас начитался документации к gdm, собираюсь попробовать. Не хочется велосипед изобретать, может кто уже проходил?

Основные задачи:
1. Сделать все именно на линовом сервере, тк второй виндовый сервер хочется упразднить. Мешает.
2. Виндовые программы с GUI использовать необходимо, аналогов или консольных версий не существует.
3. Все это хозяйство не должно использовать видеокарту и вообще локальную консоль. Тоесть прога стартует, ей кажется что у нее есть дисплей, гном со всеми библиотеками, полноценный рабочий стол.
4. Когда админ хочет проконтролировать весь этот зоопарк, он удаленно логинится к конкретному сеансу и видит "полноценный рабочий стол" с запущенной прогой. Отлогинился - все продолжает работать без него. Навроде RemoteAdmin в виндах.

Собственно про виндовые программы я написал для пояснения, что есть такие проги, которые для текстовой консоли не пишут :)  Понятно, что запускаются они через wine и работают прекрасно. Суть вопроса в управлении иксовыми сессиями из командной строки - login\logout конкретного пользователя, запуск программ в нужной сессии, удаленный логин в нужную сессию.

У меня совсем нет опыта работы с иксами, тк на сервере это как-то никогда не нужно было. В текстовой консоли использовал для таких дел screen. Вот бы тоже самое для графики смастерить...


Содержание

Сообщения в этом обсуждении
"Виндовые GUI приложения на сервере"
Отправлено bill , 08-Июл-08 21:32 
>[оверквотинг удален]
>
>Собственно про виндовые программы я написал для пояснения, что есть такие проги,
>которые для текстовой консоли не пишут :)  Понятно, что запускаются
>они через wine и работают прекрасно. Суть вопроса в управлении иксовыми
>сессиями из командной строки - login\logout конкретного пользователя, запуск программ в
>нужной сессии, удаленный логин в нужную сессию.
>
>У меня совсем нет опыта работы с иксами, тк на сервере это
>как-то никогда не нужно было. В текстовой консоли использовал для таких
>дел screen. Вот бы тоже самое для графики смастерить...

Муторно как-то. Почему бы просто не запустить иксы с легким менеджером , там все эти приложения под wine , установить vnc и спокойно логиниться когда надо?


"Виндовые GUI приложения на сервере"
Отправлено mikra , 08-Июл-08 22:40 
>[оверквотинг удален]
>>сессиями из командной строки - login\logout конкретного пользователя, запуск программ в
>>нужной сессии, удаленный логин в нужную сессию.
>>
>>У меня совсем нет опыта работы с иксами, тк на сервере это
>>как-то никогда не нужно было. В текстовой консоли использовал для таких
>>дел screen. Вот бы тоже самое для графики смастерить...
>
>Муторно как-то. Почему бы просто не запустить иксы с легким менеджером ,
>там все эти приложения под wine , установить vnc и спокойно
>логиниться когда надо?

Почитал, похоже такой вариант лучше. Спасибо за наводку, буду и его пробовать. Вобщем мне как раз это и нужно - легкий рабочий стол для приложений и логиниться когда надо. Главное в любом потенциальном решении это чтобы вся конструкция могла стартовать из командной строки. Без необходимости логиниться и запускать все иксовые приложения вручную. Сервер все-таки :)


"Виндовые GUI приложения на сервере"
Отправлено OEM , 09-Июл-08 05:20 
>Муторно как-то. Почему бы просто не запустить иксы с легким менеджером ,
>там все эти приложения под wine , установить vnc и спокойно
>логиниться когда надо?

GDM, автовход в учётку, автозапуск приложений в учётке под Wine, удалённик для учётки по паролю.
Всё само запускается и работает. Хочешь смотри на зоопарк вдвоём, втроём, вчетвером. Хочешь пусть само колбасится. Отключение удалённого сеанса по-умолчанию не вызывает закидонов типа разлогивания пользователя иксов, поэтому можно удалённо ходить туда сюда - иксы будут работать на месте и выполнять свои функции.

Мы так ушли от мойкрасофта...


"Виндовые GUI приложения на сервере"
Отправлено mikra , 10-Июл-08 12:39 
Вобщем почти все получилось, сейчас обрабатываю напильником :) Спасибо за ценные советы.

Но вот один важный момент. Допустим, по крону или из текстового ssh нужно одно из графических приложений запускать/перезапускать. Запущенная прога должна открываться на заданном рабочем столе. Как это делается? Автозапуск программ при старте gnome-сессии не годится. Придется каждой проге свой рабочий стол создавать и перезапускать сессию gnome целиком, что слишком накладно выйдет по ресурсопотреблению, да и неудобно.


"Виндовые GUI приложения на сервере"
Отправлено pavel_simple , 10-Июл-08 12:53 
читать про ..
export DISPLAY=...
xhost

"Виндовые GUI приложения на сервере"
Отправлено Gennadi , 10-Июл-08 22:27 
> Допустим, по крону или из текстового ssh нужно одно из графических приложений запускать/перезапускать. Запущенная прога должна открываться на заданном рабочем столе.

ssh -X user@remote_host прога

например запустить броузер на удаленной машине:

ssh -X root@remote_host mozilla

|


"Виндовые GUI приложения на сервере"
Отправлено mikra , 11-Июл-08 10:29 
Все получилось, вкратце делюсь опытом

Графический рабочий стол будет запущен при старте системы (или в любое другое время скриптом) от имени пользователя username. Этот стол по VNC будет доступен админу в любое время. На сервере видеокарта и всякие клавы с мышками для запуска не требуются. Передаваемый по сети трафик надо завернуть в туннель! Это здесь не описано.

Перед началом работы надо создать файл с паролем. Этот пароль будет запрашиваться у админа, который хочет получить доступ по VNC
# su username -c "x11vnc -storepasswd password /vnc_pass.txt"

Создаем виртуальный дисплей в памяти
# su username -c "/usr/bin/Xvnc :20 -geometry 800x600 -depth 16  -nolisten tcp &"

Запускаем на этом дисплее gnome
# su username -c "DISPLAY=:20.0 /usr/bin/gnome-session &"

Запускаем VNC сервер
# su username -c "x11vnc -forever -rfbauth /vnc_pass.txt -nolookup -display :20 -o /home/username/x11errors.txt -bg > /dev/null &"

Запускаем на нашем рабочем столе иксовое приложение, ради которого весь этот огород городился
# su username -c "DISPLAY=:20.0 /usr/bin/gcalctool &"

Коннектимся VNC клиентом http://www.tightvnc.com и смотрим как приложение работает на нашем сервере.

На сервере нужно открыть tcp порт 5900 для VNC коннектов.
Именно Gnome запускать необязательно, можно найти менеджер и полегче.
Xvnc сам по себе уже может общаться с клиентами по сети, но почему-то существенно медленнее чем через x11vnc.

Выслушаю ваши отзывы и предложения :)


"Виндовые GUI приложения на сервере"
Отправлено pavel_simple , 11-Июл-08 10:37 
какой ужас -- и это всё .... наворочено тут здря.

посмотрите ключик -inetd у tightvnc сервера
да и для чего сучествует файл ~/.xsession тоже стоит взглянуть


"Виндовые GUI приложения на сервере"
Отправлено mikra , 11-Июл-08 11:02 
>какой ужас -- и это всё .... наворочено тут здря.
>
>посмотрите ключик -inetd у tightvnc сервера

Я готов предположить что делает ключик inetd. Он запускает виртуальный дисплей и, вероятно, даже WM при обращении по сети, угадал?
Будет ли рабочий стол существовать сразу после запуска компа? Где будут запускаться иксовые программы, стартующие при запуске компа?


"Виндовые GUI приложения на сервере"
Отправлено pavel_simple , 11-Июл-08 11:08 
>>какой ужас -- и это всё .... наворочено тут здря.
>>
>>посмотрите ключик -inetd у tightvnc сервера
>
>Я готов предположить что делает ключик inetd. Он запускает виртуальный дисплей и,
>вероятно, даже WM при обращении по сети, угадал?
>Будет ли рабочий стол существовать сразу после запуска компа? Где будут запускаться
>иксовые программы, стартующие при запуске компа?

не нужно предполАгать -- нужно внимательно прочитать -- понять -- настроить -- и все ваши костыли не понадобятся


"Виндовые GUI приложения на сервере"
Отправлено DangerD , 17-Июл-08 13:02 
У меня freebsd, поставил x11vnc, а что надо доставить что б появился бинарник /usr/bin/Xvnc ?

"Виндовые GUI приложения на сервере"
Отправлено mikra , 22-Июл-08 11:50 
>У меня freebsd, поставил x11vnc, а что надо доставить что б появился
>бинарник /usr/bin/Xvnc ?

надо набрать
which Xvnc
в фре оно поставилось наверняка в /usr/local/bin