Выключение терминала кнопкой (нужен дисконнект от сервера)

Ответить

Смайлики
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ОТКЛЮЧЕН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Выключение терминала кнопкой (нужен дисконнект от сервера)

Re: Выключение кнопкой

MAGNet » Ср окт 09, 2013 7:42 am

Prizrak писал(а):можно запустить RemoteAPP приложение и RDP сессию под одним пользователем и это будут 2 разные сессии, даже если установлен параметр ограничивать пользователя одним сеансом
Спасибо, проверю.
..как-то не задумывался, что сеансы - это не сессии))

Re: Выключение кнопкой

Prizrak » Пт сен 27, 2013 10:31 am

Это понятно, можно запустить RemoteAPP приложение и RDP сессию под одним пользователем и это будут 2 разные сессии, даже если установлен параметр ограничивать пользователя одним сеансом

Re: Выключение кнопкой

Rushmore » Чт сен 26, 2013 12:47 pm

Prizrak писал(а):Ребяты, сессии RemoteAPP и RDP разные
Вся разница в том, что вместо explorer.exe другой шелл стартует. В остальном все одинаково.

Re: Выключение кнопкой

Prizrak » Чт сен 26, 2013 11:52 am

Ребяты, сессии RemoteAPP и RDP разные, если в этом проблема, то тема яйца выеденного не стоит

Re: Выключение кнопкой

aka » Чт сен 26, 2013 10:52 am

http://wtware.ru/download.html

Там под ссылкой для скачивания написано: "Отзывы об этой версии: на форуме. Читать обязательно", "на форуме" ссылка. На нее нажимай, будет тема про текущую версию. Туда скидывай.

Re: Выключение кнопкой

MAGNet » Чт сен 26, 2013 12:51 am

aka
спрашивал оффтопом, куда сливать мелкие баги?
может стоит создать раздел?

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

Re: Выключение кнопкой

MAGNet » Пн сен 23, 2013 9:44 pm

Rushmore писал(а):Перезагрузка чего?
Полная перезагрузка терминал. Через три пальца.

Re: Выключение кнопкой

Rushmore » Пн сен 23, 2013 6:06 pm

MAGNet писал(а):Даже переподключение сессии не спасло, помогла только перезагрузка.
Перезагрузка чего? По опыту обычно спасает logoff сессии и перезагрузка терминала.

Re: Выключение кнопкой

MAGNet » Пн сен 23, 2013 5:14 pm

aka писал(а):1. Нельзя делать disconnect, если к терминалу подключены диски, ком-порты или смарт-карты. После переподключения запущеные программы продолжают думают, что они все еще работают с устройствами, хотя на самом деле все открытые дескрипторы закрылись и надо открывать заново.
Сегодня как раз похожая ситуация произошла. Подключен фискальник через эмулятор com-порта, порт проброшен в сессию. После переподключения фискальник от порта отвалился, т.е. порт был, но до аппарата достучаться было нельзя. Даже переподключение сессии не спасло, помогла только перезагрузка.

Re: Выключение кнопкой

Rushmore » Пн сен 23, 2013 1:48 pm

aka писал(а):Нельзя делать disconnect, если к терминалу подключены диски, ком-порты или смарт-карты.
В большинстве случаев перезапуск приклада после переподключения решает все проблемы. Принтеры переподключаются вообще без видимых проблем.
aka писал(а):Проблема на самом деле в сервере. Сервер сам должен обнаруживать, что клиент выключен, и сам должен переводить сессию в disconnected. Свежепоставленный сервер, висящий на одном хабе с терминалом, УМЕЕТ это обнаруживать безо всяких дополнительных сообщений от терминала, инфа 100%.
Уметь-то умеет, но к сожалению делает это не мгновенно. Особенно если через интернет, через стопицот роутеров, через разные VPNы. Лично у меня вероятность ситуации, при которой терминальный сервер и клиент висят на одном хабе, стремится к нулю. Поэтому очень хорошо и правильно иметь такой штатный способ сказать серверу, что клиент отключается.
aka писал(а):Сейчас мы подставили костыль, но этот костыль не сработает, если например терминал выключат кнопкой на удлинителе, а не на системнике, т.е. питание отключат. Также костыль не сработает, если пропадет сетевое соединение с терминалом - роутер отвалится или блок питания свича сгорит.
С этим все понятно. Если вы компьютер выключите не кнопкой питания на системнике, а на удлинителе, то подозреваю тоже ничего хорошего не получится. Но при штатном выключении такая фича вполне уместна.

Re: Выключение кнопкой

aka » Пн сен 23, 2013 1:11 pm

Хорошо когда все довольны :D

Можно я поворчу?

1. Нельзя делать disconnect, если к терминалу подключены диски, ком-порты или смарт-карты. После переподключения запущеные программы продолжают думают, что они все еще работают с устройствами, хотя на самом деле все открытые дескрипторы закрылись и надо открывать заново. Еще хуже будет, если номер заново открытого дескриптора совпадет с номером открытого раньше, тогда любые чудеса возможны. Майкрософтовый диспетчер смарт-карт корректно отрабатывает disconnect, потому что он майкрософтовый, майкрософты вообще умные. Корявая програмулька васи пукина для печати из 1С на фискальник точно не будет об этом знать и отработает дисконнект криво. Надо приучать юзеров делать завершение работы через виндовс. А в конфиге втвари писать turnoffmenu=poweroff, тогда терминал сам будет выключаться при завершении сеанса с виндовсом.

2. Проблема на самом деле в сервере. Сервер сам должен обнаруживать, что клиент выключен, и сам должен переводить сессию в disconnected. Свежепоставленный сервер, висящий на одном хабе с терминалом, УМЕЕТ это обнаруживать безо всяких дополнительных сообщений от терминала, инфа 100%.

Если сервер не обнаруживает, значит в сервере что-то сломалось. Сейчас мы подставили костыль, но этот костыль не сработает, если например терминал выключат кнопкой на удлинителе, а не на системнике, т.е. питание отключат. Также костыль не сработает, если пропадет сетевое соединение с терминалом - роутер отвалится или блок питания свича сгорит.

Re: Выключение кнопкой

MAGNet » Пн сен 23, 2013 6:27 am

aka писал(а):MAGNet
Попробуй вот это:
http://pxe.ru/files/testing/201309230318.zip
Отлично!
Всё работает как надо. Клиент дисконнектится и при повторном включении снова попадает в свою сессию.
Вот кусок лога:

Код: Выделить всё

10-19-57-0793| Connection from wtc.exe at 192.168.20.105.
10-21-00-0150| button/power PWRF 00000080 00000001
10-21-00-0350| Turn power off.
10-21-00-0351| [rdpclient 603] Send Disconnect Provider Ultimatum.
10-21-00-0352| Turn power off.
10-21-00-0352| Turn power off.
10-21-00-0353| [gm] TSClient gracefully end.
10-21-00-0354| [pfac] Process pid 603 terminated, status 00000000.
10-21-00-0354| [rdpdr-serial 8] Close client connection 0 (id 1).
10-21-00-0355| [rdpsnd] Link lost.
10-21-00-0355| [rdpclient 603] Caught signal SIGTERM.
10-21-10-0353| [wtc.exe] Соединение закрыто.
Далее политикой регулируем срубание отключенных сессий через 5 мин. и все довольны, все смеются :lol:

Re: Выключение кнопкой

MAGNet » Пн сен 23, 2013 6:24 am

Rushmore писал(а):Но по кнопке мне кажется лучше как раз disconnect делать, а на сервере уже настроить политику на прибивание отключенных сессий по тайм-ауту.
Всё правильно, так и нужно.

Re: Выключение кнопкой

Rushmore » Пн сен 23, 2013 5:47 am

aka писал(а):-k disconnect работает, активную сессию рубит. Но это же не интересно, это просто отключение, с тем же успехом можно процесс прибить.

-k logoff у меня не работает. Сервер 2008r2sp1. Не делает вообще ничего - сессия не рубится, никаких сообщений никуда не вылазит. А у тебя работает?
У меня logoff тоже не работает. Но по кнопке мне кажется лучше как раз disconnect делать, а на сервере уже настроить политику на прибивание отключенных сессий по тайм-ауту.

Re: Выключение кнопкой

aka » Пн сен 23, 2013 2:24 am

MAGNet
Попробуй вот это:

http://pxe.ru/files/testing/201309230318.zip

Я добавил отправку команды дисконнекта всем активным RDP соединениям при выключении компьютера кнопкой питания. Изменится что-нибудь? Если сессии будут оставаться в состоянии active, хочу лог. Чтобы получить лог завершения работы, надо сначала нажать в конфигураторе кнопку "получить лог" на нужном терминале, и после этого нажимать кнопку питания. Все сообщения перед выключением оно должно записать. Сохрани и выложи, будем дальше думать.

Re: Выключение кнопкой

aka » Пн сен 23, 2013 12:22 am

Понял.

-k disconnect работает, активную сессию рубит. Но это же не интересно, это просто отключение, с тем же успехом можно процесс прибить.

-k logoff у меня не работает. Сервер 2008r2sp1. Не делает вообще ничего - сессия не рубится, никаких сообщений никуда не вылазит. А у тебя работает?

Re: Выключение кнопкой

Rushmore » Вс сен 22, 2013 10:41 pm

aka писал(а):В линуксовом клиенте у меня -k не работает. Настроил соединение, командная строка получилась такая:

/opt/2X/Client/bin/appserverclient -u u1 -s 10.1.1.80:3389 -c 24 -m MS -g 1024x768

Работает, подключается. Добавляю -k logoff или -k disconnect:

/opt/2X/Client/bin/appserverclient -u u1 -s 10.1.1.80:3389 -c 24 -m MS -g 1024x768 -k logoff
/opt/2X/Client/bin/appserverclient -u u1 -s 10.1.1.80:3389 -c 24 -m MS -g 1024x768 -k disconnect

В обоих случаях оно не соединяется, команда сразу завершает работу. Что я делаю не так?
Сначала устанавливаешь соединение

/opt/2X/Client/bin/appserverclient -u user -s server:3389 -c 24 -m MS -g 1024x768

Потом делаешь

/opt/2X/Client/bin/appserverclient -k disconnect

В доке написано, что рубит установленную активную сессию.

Re: Выключение кнопкой

aka » Вс сен 22, 2013 7:44 pm

MAGNet писал(а):удивительно, что при закрытии mstsc, rdesktop, freerdp сессия дисконнектится и переходит в состояние "отключено", а при закрытии wtware сессия виснет и остается в состоянии "активна"
сдается мне, что не в сервере дело..
Все трое находились в одной сети с сервером, всех троих выключал кнопкой на системнике? Подробное описание проделанного эксперимента в студию.

Re: Выключение кнопкой

MAGNet » Вс сен 22, 2013 7:36 pm

удивительно, что при закрытии mstsc, rdesktop, freerdp сессия дисконнектится и переходит в состояние "отключено", а при закрытии wtware сессия виснет и остается в состоянии "активна"

сдается мне, что не в сервере дело..

Re: Выключение кнопкой

aka » Вс сен 22, 2013 4:28 pm

Rushmore писал(а):У rdp клиента от 2x есть например опция -k, которая позволяет выполнить команду logoff или disconnect в активной сессии.
Забавно, что эта фича -k есть только в их линуксовом клиенте. В их виндовом клиенте такой фичи нет: http://www.2x.com/docs/en/manuals/html/ ... lient.html

В линуксовом клиенте у меня -k не работает. Настроил соединение, командная строка получилась такая:

/opt/2X/Client/bin/appserverclient -u u1 -s 10.1.1.80:3389 -c 24 -m MS -g 1024x768

Работает, подключается. Добавляю -k logoff или -k disconnect:

/opt/2X/Client/bin/appserverclient -u u1 -s 10.1.1.80:3389 -c 24 -m MS -g 1024x768 -k logoff
/opt/2X/Client/bin/appserverclient -u u1 -s 10.1.1.80:3389 -c 24 -m MS -g 1024x768 -k disconnect

В обоих случаях оно не соединяется, команда сразу завершает работу. Что я делаю не так?


На самом деле в протоколе RDP предусмотрен логоф по инициативе программы-клиента:

http://msdn.microsoft.com/en-us/library/cc240531.aspx

Я пробовал делать это в втвари. Ни в одном из серверов, которые у меня были под рукой, эта команда не сработала. Возможно, 2x тоже ничего хитрого не делает, а просто отсылает такой же пакет, а что сервер его не выполняет - это уже не их проблемы?

Re: Выключение кнопкой

MAGNet » Вс сен 22, 2013 5:52 am

Rushmore писал(а):Может, имеет смысл давать перед отключением питания?
Команда disconnect перед выключением - я именно об этом

Re: Выключение кнопкой

Rushmore » Сб сен 21, 2013 9:17 pm

aka писал(а):Могу добавить на завершение работы любую полезную функциональность. Если только эта функциональность вообще возможна, а не существует в фантазиях.
У rdp клиента от 2x есть например опция -k, которая позволяет выполнить команду logoff или disconnect в активной сессии.

Может, имеет смысл давать перед отключением питания?

Re: Выключение кнопкой

aka » Сб сен 21, 2013 7:38 pm

MAGNet писал(а):
aka писал(а):
MAGNet писал(а):Надеюсь, что теперь всё предельно ясно =))
Теперь не ясно, что еще ты хочешь.
Я хочу, чтоб втваря по кнопке не вырубала питание, а завершала свою работу корректно.
Как это делают все системы.
Перечисли хотя бы три из этих всех систем, которые по кнопке завершают RDP сеанс с майкрософтовым терминальным сервером так, как тебе нужно. Еще раз: завершают RDP сеанс с майкрософтовым терминальным сервером.
MAGNet писал(а):
В наши дни различные версии ACPI поддерживаются многими ОС — в том числе, всеми версиями Microsoft Windows, начиная с Windows 98, системами GNU/Linux, FreeBSD, OpenBSD, NetBSD и eComStation.
А вот WTware ничего не знает про ACPI.
Что здесь непонятного? нужно просто корректно завершить работу, а не уходить по-английски.
Втварь все знает про ACPI и завершает работу так, как считает нужным. Могу добавить на завершение работы любую полезную функциональность. Если только эта функциональность вообще возможна, а не существует в фантазиях. То, чего ты хочешь, больше похоже на фантазию.

Re: Выключение кнопкой

MAGNet » Сб сен 21, 2013 5:53 pm

aka писал(а):
MAGNet писал(а):Надеюсь, что теперь всё предельно ясно =))
Теперь не ясно, что еще ты хочешь.
Я хочу, чтоб втваря по кнопке не вырубала питание, а завершала свою работу корректно.
Как это делают все системы.
В наши дни различные версии ACPI поддерживаются многими ОС — в том числе, всеми версиями Microsoft Windows, начиная с Windows 98, системами GNU/Linux, FreeBSD, OpenBSD, NetBSD и eComStation.
А вот WTware ничего не знает про ACPI.
Что здесь непонятного? нужно просто корректно завершить работу, а не уходить по-английски.

Re: Выключение кнопкой

aka » Сб сен 21, 2013 4:11 pm

MAGNet писал(а):Надеюсь, что теперь всё предельно ясно =))
Теперь не ясно, что еще ты хочешь. Я объяснил проблему, объяснил простой способ лечения (ограничить юзера одним сеансом). Хочешь правильный способ решения - экспериментируй с mstsc.exe и выясняй, почему именно этот сервер именно в этой сети не замечает выключения клиента.

Re: Выключение кнопкой

MAGNet » Сб сен 21, 2013 9:14 am

И ещё оффтоп: замечен ряд маленьких багов в интерфейсе сервера. Со временем опишу всё, что нашел.
Куда выкладывать? Не нашел специальной ветки, или темы..

В дополнение

MAGNet » Сб сен 21, 2013 9:03 am

aka писал(а):Потому что майкрософты в протоколе RDP не предусмотрели завершение сеанса по инициативе программы-клиента. Только отключение, при котором сессия остается висеть и открытые программы остаются открытыми.
Мне нужно ИМЕНО ЭТО!

ps
при удаленном выключении или перезагрузке наблюдается та же история. сессия виснет, а не переходит в состояние "отключено".
моё мнение - такого быть не должно.

pps
aka писал(а):
MAGNet писал(а):где-то пару месяцев назад в другом месте у меня клиеты по кнопке завершали работу втвари с последующм программным выключением и при повторном включении клиент обратно попадал в свою сессию. сейчас ситуация обратная. ЧЯДНТ?
Не знаю. Разберешься - расскажи.
Разобрался. Ситуация была ткая же, но там настройка сервера ограничвала пользователя одним сеансом.
Здесь так нельзя, ибо RemoteApp процветает.

Re: Выключение кнопкой

MAGNet » Сб сен 21, 2013 8:46 am

И снова я непонятно выразился.
Всё ниже напианное не имеет никакого отношения в виндовозу!
aka писал(а):
MAGNet писал(а):система по кнопке должна инициировать процесс выключения: закрытие программ, и сетевых подключений, размонтирование томов, выгрузку демонов и т.д.. только после этог отключение питания.
почему этого не проиходит?
Потому что майкрософты в протоколе RDP не предусмотрели завершение сеанса по инициативе программы-клиента. Только отключение, при котором сессия остается висеть и открытые программы остаются открытыми.
Под словом "система" подразумевалась втваря.
Мне не нужно завершение сеанса. Я хочу, чтобы втваря корректно завершала работу по кнопке, а не вырубала питание компа.
Мн не нужна зависшая активная сессия, а именно так сейчас происходит.
Вполне достаточно того, чтобы втварный рдп-клиент просто отключился, корректно закрылся без завершения сессии. Чтобы сессия не была брошена или закрыта, а перешла в состояние "отключено".

Втваря просто должна корректно завершать свою собственную работу с нормальным разрывом соединений и закрытием программ.
Согласитесь, это нормальное требование. Времена, когда компы выключали тумблером закончились когда я ещё в институте учился.

Скажите можно с этим что-то сделать или оно должно работать менно так, а я просто что-то не то настроил..

Надеюсь, что теперь всё предельно ясно =))

Re: Выключение кнопкой

aka » Пт сен 20, 2013 6:35 pm

MAGNet писал(а):система по кнопке должна инициировать процесс выключения: закрытие программ, и сетевых подключений, размонтирование томов, выгрузку демонов и т.д.. только после этог отключение питания.
почему этого не проиходит?
Потому что майкрософты в протоколе RDP не предусмотрели завершение сеанса по инициативе программы-клиента. Только отключение, при котором сессия остается висеть и открытые программы остаются открытыми.

Запусти на виндовсе mstsx.exe. Подключись, открой в сессии программы. Затем нажми на кнопку питания. Виндовс будет закрывать локальные программы, но ничего не сделает с программами, запущенными в сессии mstsc.exe.
MAGNet писал(а):при зарытии рдп-клиента подключение переходит в состояние "отключено", а здесь тупо рвеся связь и сервер ждет возобновления сессии. сессия не закрывается и висит в состоянии "акивная". попаст в неё после этого невозможно, нужно сбрасывать руками.
А если завершить работу всего виндовса, на котором есть открытые mstsc.exe сессии, кнопкой питания, то сессии mstsc в какое состояние перейдут?
MAGNet писал(а):где-то пару месяцев назад в другом месте у меня клиеты по кнопке завершали работу втвари с последующм программным выключением и при повторном включении клиент обратно попадал в свою сессию. сейчас ситуация обратная. ЧЯДНТ?
Не знаю. Разберешься - расскажи.

"отключено" это когда терминальный сервер заметил, что TCP соединение с клиентом прервалось.

"активная" при отключенном клиенте - это терминальный сервер по какой-то причине не заметил, что TCP соединение оборвалось, и считает, что клиент все еще работает и подключен.

Начиная с 2003 сервера майкрософты ввели режим "ограничить юзера одной сессией". Насколько я понимаю, это было сделано именно потому, что проблема с подвисшими активными сессиями в целом никак не решалась. И на современных серверах по умолчанию эта политика как раз активна. Т.е. залогинившийся юзер подключается к своей же сессии, даже если она активна. Возможно, ты отключил эту политику?

Re: Выключение кнопкой

MAGNet » Пт сен 20, 2013 5:42 am

да, немного непонятно объяснил.
система по кнопке должна инициировать процесс выключения: закрытие программ, и сетевых подключений, размонтирование томов, выгрузку демонов и т.д.. только после этог отключение питания.
почему этого не проиходит? почему втварь не контролирует кнопку питани?
при зарытии рдп-клиента подключение переходит в состояние "отключено", а здесь тупо рвеся связь и сервер ждет возобновления сессии. сессия не закрывается и висит в состоянии "акивная". попаст в неё после этого невозможно, нужно сбрасывать руками.

где-то пару месяцев назад в другом месте у меня клиеты по кнопке завершали работу втвари с последующм программным выключением и при повторном включении клиент обратно попадал в свою сессию. сейчас ситуация обратная. ЧЯДНТ?

Re: Выключение кнопкой

aka » Пт сен 20, 2013 2:54 am

Не понял.

По кнопке питания и должен вырубаться терминал. Втварь не может программно завершить сессию, в RDP нет возможности завершить сессию по инициативе программы клиента. Втварь может только прервать сессию, сессия останется висеть.

Завершать работу надо через виндовое завершение сессии.

Выключение терминала кнопкой (нужен дисконнект от сервера)

MAGNet » Чт сен 19, 2013 9:03 pm

Обнаружилась некоторая сложность с сабжем.
Видимо я что-то накрутил в настройках..
Система перестала выключаться с кнопки - тупо вырубается комп. И вырубается так, что остается открытая сессия в активном режиме. Может висеть очень долго, терпения хватило на пол часа.
От железа или настроек БИОСа не зависит, проверял на разных железках с разными настройками БИОС.

Если нужна доп.инфа, то скажите какая.

зы
сборка 5.1.43
железо интеловское, разное.

Вернуться к началу