LINUX.ORG.RU

Терминальный сервер на VNC - закрытие терминала


0

0

Здравствуйте!

Настраиваю терминальный сервер под SLES 10 sp1. Терминал на VNC, KDE. На клиентах тоже KDE, соединение осуществляю через krdc.

Встала проблема: при закрытии окна терминала закрывается сессия на сервере, с убийством всех приложений из этой сессии. Как можно победить такое поведение, и сделать, чтобы сессия закрывалась только при выборе "Завершить сеанс" в меню, а при закрытии окна она бы оставалась на сервере?

Заранее благодарен!

★★★★
Ответ на: комментарий от gnomino

>Какой конкретно VNC сервер? Их несколько.

Стоят пакеты xorg-x11-Xvnc и tightvnc. Какой конкретно отрабатывает --- не скажу. Настраивал (если это можно так назвать) через YaST, Сетевые службы->Удалённое администрирование.

Я так понимаю, сессия не закрывается только в том случае, когда подключаешься к существующей сессии (которая на самом серваке открыта ручками), а в иных случаях при подключении создаётся новая, так?

Ay49Mihas ★★★★
() автор топика
Ответ на: комментарий от adarovsky

>А как запускаешь VNC server? Обычно сессия остаётся, если просто запустить vncserver...

Уменя применение в качестве терминального сервера, то есть когда куча народу нему подключается. Я так понимаю, что там возниает проблема аутентификации среди уже запущенных сессий?

Ay49Mihas ★★★★
() автор топика

Тут подумал...

Получается, это проблема не VNC как такового? Или всё ж его, но сервера. Когда я закрываю окно vncviewer'а, то мне нужно, чтобы "сеанс оставался на сервере". Это значит, что на сервере должны оставаться запущенными иксы для этого сеанса VNC. Допустим, добились мы этого. Далее следующая проблема: подключиться именно к этому сеансу (если там ещё пачка сеансов, тоже ожидающих своей участи).

Значит, нужно что-нибудь типа "один пользователь может зайти в систему только один раз", и если он соединён со своим сеансом, то больше нельзя, а если не соединён --- то соединить его со своим сеансом. Так, получается? И ковырять здесь надо будет как Xvnc-tightvnc, так и dm'ы...

Ay49Mihas ★★★★
() автор топика
Ответ на: комментарий от Ay49Mihas

>Получается, это проблема не VNC как такового? Или всё ж его, но сервера

вообще, vnc -сессия работает независимо от того, прицепился к ней кто-то или нет. Очень полезно, когда есть "серверное" приложение с графической мордой. Его можно поднять под VNC, и время от времени заглядывать и проверять, работает ли :)

Про автоматические сессии, каюсь, не слышал. Можно прицепиться двумя терминалами к одной сессии и воевать за клавиатуру и мышь. Разделить вряд ли получится, хотя где-то видел такие попытки

adarovsky ★★★★
()
Ответ на: комментарий от adarovsky

Ну, тут именно открытие новой сессии при новом подключении (видимо, через xinetd, но не проверял). Вот с этим хочу побороться. Или, может быть, есть аналоги, обеспечивающие подобный функционал? ssh -X тоже закрывает всё безапелляционно...

Ay49Mihas ★★★★
() автор топика
Ответ на: комментарий от Ay49Mihas

капай в сторону xrdp.org помоему это то что нужно только вот насчет закрытия сессий не знаю не пробывал или FreeNX server смотреть нужно

anonymous
()
Ответ на: комментарий от anonymous

>капай в сторону xrdp.org помоему это то что нужно только вот насчет закрытия сессий не знаю не пробывал или FreeNX server смотреть нужно

Дык и VNC всм устраивает, кроме закрытия сессий. Так что если ничего не позволяет, то смысл копать?

Ay49Mihas ★★★★
() автор топика
Ответ на: комментарий от Ay49Mihas

через яст оно и будет их закрывать постоянно, можно еще через sax2  сделать, там сесия сохраняеться, точнее просто конектиться к существующей если их нескольно то можно конетиться в конктерной указав номер vnc:/10.18.0.1:1 vnc:/10.18.0.1:0 

anonymous
()
Ответ на: комментарий от Ay49Mihas

> Дык и VNC всм устраивает, кроме закрытия сессий.

Дык xrdp - это враппер на Xvnc, только в нем все уже настроено и работает :-)

no-dashi ★★★★★
()

В общем, спешу доложить. Получилось у меня побороть эту вещь, 
но не совсем так, как хотелось. Получилось, что на одно 
клиентское соединение надо зарезервировать один порт.
В /etc/xinetd.d/vnc должны быть только записи с wait = yes вида:

service vnc1
{
    socket_type = stream
    protocol = tcp
    wait = yes
    user = nobody
    server = /usr/bin/Xvnc
    server_args = -SecurityTypes None -inetd -once -query localhost -geometry 1024x768 -depth 16
    type = UNLISTED
    port = 5901
}

Для каждого подключения указать такое (или сделать проверку пароля
дополнительно) и каждому клиенту указать свой порт. При закрытии
окна сеанс остаётся, и всё ОК. Недостаток --- нужно исхитряться 
при добавлении пользователей. Пока централизованное управление
(аналог домена) не предполагается, а потом надо будет дополнительно
извращаться.

Всем спасибо за содержательную беседу!

Ay49Mihas ★★★★
() автор топика
Ответ на: комментарий от Ay49Mihas

Продолжаю докладывать. Это решение работает на OpenSuSE 10.3, на SLES10sp1 работать отказалось --- там другая версия иксов (в том числе и Xvnc), и другие параметры нужны Xvnc.

Короче, буду смотреть в сторону FreeNX.

Ay49Mihas ★★★★
() автор топика
Ответ на: комментарий от anonymous

>Во ФрееНХ нет подключения к существ. сессии

Кажись вру...

подключаюсь виндовым клиентом, открываю проги, нажимаю на крестик (или в администр. дисконнект сессион), в виндовс завершаю процесс nxssh.exe (это обязатаельно, иначе не запустить сессию), подключаюсь заново - все, что было запущено работает

anonymous
()
Ответ на: комментарий от Ay49Mihas

>Уже проверил, есть.

пока писал, уже успел проверить... :)

как/каким клиентом/ проверял? Подробнее, пожалуйста

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.