freenx и невидимые сессии (отрезано от "Курощения")

Модераторы: dimbor, Модераторы разделов

SirYorik
Сообщения: 41

freenx и невидимые сессии

Сообщение SirYorik »

давно тут не был. почитал с интересом. но. поскольку у нас исключительно десктоп-режим... то битва вокруг рутлесс прошла мимо... зато интересно что делать с невидимыми сессиями (как-то определять наличие такой сессии и прибивать автоматом, или еще что). то есть это те, что не фигурируют в nxserver --list. но фигурируют в списке процессов (top|htop). с такой сессией юзер не может запустить 1С в живой сессии (тоесть когда их две, невидимая и нормальная). 1с при старте ругается на "окна", точно ругань не вспомню, и падает. лечится это киллом всех процессов данного юзера. после чего он заходит снова и продолжает работать.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1572
Статус: Подвинутый участник

Re: freenx и невидимые сессии

Сообщение dimbor »

SirYorik писал(а):
08.10.2008 09:46
лечится это киллом всех процессов данного юзера. после чего он заходит снова и продолжает работать.

Устранение незаказанного объекта есть удар по репутации уважающего себя киллера. В файлике /var/lib/nxserver/db/running/sessionId{~<ssid>} живет запущенная сессия, как ее понимает nxserver --list и т.д. В файликах $USERHOME/.nx/C-<servername>-<ndisp>~<ssid>/pids/* живут pid-ы. этой сессии. В выводе команды ps -fu vasja живут еще пиды. Приводить периодически эти списки в соответствие с помощью kill - труда больше чем на несколько часов не составит. Тем более, что живой код можно подсмотреть в скриптах nxserver и nxnode. Идею - дарю :)
Спасибо сказали:
SirYorik
Сообщения: 41

Re: freenx и невидимые сессии

Сообщение SirYorik »

> В файлике /var/lib/nxserver/db/running/sessionId{~<ssid>} живет запущенная сессия, как ее понимает nxserver --list
именно, но если nxserver --list не показывает сессию, значит файлика в ../running/.. нет.
значит он наверняка перехал в ../failed/.. (а это nxserver --history)
а процессы висят...

> ps -fu vasja
оноже
pgrep -U vasja
pgrep -l -U vasja
pkill -U vasja (главное лекарство)

> Тем более, что живой код можно подсмотреть в скриптах nxserver и nxnode
смотрел уже.
некисло там накодено.
(надо посмотреть по какому критерию оно переносит сессию из статуса running\suspended в failed...)

есть подозрение что косяк возникает при многодневном висении сесси, когда юзер банально закрыл терминальное окно вместе с открытой 1с.
поэтому в крон вставлена массовая чистка терминалсервера, от всех временных ресурсов (а их у меня гдето 5-6) начиная с nxserver --cleanup
Спасибо сказали:
bsavelev
Сообщения: 231
ОС: Debian

Re: freenx и невидимые сессии

Сообщение bsavelev »

еще можно использовать nxsadmin
Спасибо сказали:
SirYorik
Сообщения: 41

Re: freenx и невидимые сессии

Сообщение SirYorik »

o. точно. :rudolph:
осталось выяснить видит ли он невидимое.
и будет ли вообще невидимое появляться теперь.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1572
Статус: Подвинутый участник

Re: freenx и невидимые сессии

Сообщение dimbor »

SirYorik писал(а):
08.10.2008 12:52
> В файлике /var/lib/nxserver/db/running/sessionId{~<ssid>} живет запущенная сессия, как ее понимает nxserver --list
именно, но если nxserver --list не показывает сессию, значит файлика в ../running/.. нет.
значит он наверняка перехал в ../failed/.. (а это nxserver --history)
а процессы висят...

Да не..., все проще:
1) Лезем в db/running, набираем список гарантировано рабочих сессий.
2) Из $USERHOME/.nx/C-<servername>-<ndisp>~<ssid*>/pids/* по полученному списку сессий нагребаем список неприкасаемых pid-ов.
3) Грохаем все у пользователя, кроме входящего в этот список и ssh*.
Спасибо сказали: