FreeNX + 1с закрытие сессии
Модераторы: dimbor, Модераторы разделов
-
- Сообщения: 51
- ОС: OpenSUSE11
FreeNX + 1с закрытие сессии
Имеется FreeNX server от etersoft с патчами от уважаемого dimbor, клиенты работают в десктоп режиме в основном с 1С, если закрыть 1С и сразу завершить nx сессию - крашатся базы, так-как 1С завершает работу не сразу а с интервалом 3-5 секунд. Отсюда вопрос, можно ли принудительно убрать из диалога закрытия nx сессии кнопку "terminate" ? Или же поставить задержку 10 секунд на закрытие сессии? В конфиге nxserver ничего по этому вопросу не нашел. Буду признателен если посоветуете решение.
Re: FreeNX + 1с закрытие сессии
masterhide писал(а): ↑18.02.2010 15:48Отсюда вопрос, можно ли принудительно убрать из диалога закрытия nx сессии кнопку "terminate" ? Или же поставить задержку 10 секунд на закрытие сессии? В конфиге nxserver ничего по этому вопросу не нашел. Буду признателен если посоветуете решение.
Убрать ссылку /usr/bin/nxclient (если есть), тогда будет запускаться диалог завершения из /usr/bin/nxdialog
В нем есть xmessage_yesnosuspend() вот там кнопку terminate можно убрать, или поставить задержку, а еще лучше скрипт на проверку завершилась ли 1С.
P.S. Тему перенесите пожалуйста в "Терминальные решения".
Спасибо сказали:
-
- Сообщения: 51
- ОС: OpenSUSE11
Re: FreeNX + 1с закрытие сессии
Ссылки на nxclient вроде как нет, как и самого nxclient, диалог вызывается и там есть выбор, suspend или terminate, как я понимаю terminate надо убирать в nxdialog? А не могли бы примерный скрипт подсказать? На проверку завершения 1с или на паузу 10 сек? Как я понял все это дело нужно копать в
/usr/bin/nxdialog:
/usr/bin/nxdialog:
Код: Выделить всё
# xmessage dialog interface
#
xmessage_ok()
{
$xmessage -buttons "Ok:0" -center "$DIALOG_MESSAGE"
return 0 # Give cancel on close ...
}
xmessage_yesno()
{
$xmessage -buttons "Yes:2,No:0" -center "$DIALOG_MESSAGE"
}
xmessage_yesnosuspend()
{
$xmessage -buttons "Suspend:3,Terminate:2,Cancel:0" -center "$DIALOG_MESSAGE"
}
xmessage_panic()
{
$xmessage -buttons "Terminate:2,Cancel:0" -center "$DIALOG_MESSAGE"
}
xmessage_quit()
{
$xmessage -buttons "Quit:0" -center "$DIALOG_MESSAGE"
return 0 # Give cancel on close ...
}
- Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: FreeNX + 1с закрытие сессии
i Уведомление от модератора в терминальные решения
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Re: FreeNX + 1с закрытие сессии
masterhide писал(а): ↑18.02.2010 17:13диалог вызывается и там есть выбор, suspend или terminate, как я понимаю terminate надо убирать в nxdialog? А не могли бы примерный скрипт подсказать? На проверку завершения 1с или на паузу 10 сек? Как я понял все это дело нужно копать в
/usr/bin/nxdialog:
Как то вот так:
Код: Выделить всё
xmessage_yesnosuspend()
{
proc_1c=`ps -u $USER|grep 1cv7.exe`
if [ -n "$proc_1c" ]; then
$xmessage "Error: 1C is running! Try later." -center -timeout 60
return 0
else
$xmessage -buttons "Suspend:3,Terminate:2,Cancel:0" -center "$DIALOG_MESSAGE"
fi
}
Там есть еще
xdialog_yesnosuspend()
dialog_yesnosuspend()
их надо по аналогии переделать.
Спасибо сказали:
-
- Сообщения: 51
- ОС: OpenSUSE11
Re: FreeNX + 1с закрытие сессии
Благодарю, завтра попробую.
-
- Сообщения: 51
- ОС: OpenSUSE11
Re: FreeNX + 1с закрытие сессии
Djelf писал(а): ↑18.02.2010 18:01masterhide писал(а): ↑18.02.2010 17:13диалог вызывается и там есть выбор, suspend или terminate, как я понимаю terminate надо убирать в nxdialog? А не могли бы примерный скрипт подсказать? На проверку завершения 1с или на паузу 10 сек? Как я понял все это дело нужно копать в
/usr/bin/nxdialog:
Как то вот так:
Код: Выделить всё
xmessage_yesnosuspend() { proc_1c=`ps -u $USER|grep 1cv7.exe` if [ -n "$proc_1c" ]; then $xmessage "Error: 1C is running! Try later." -center -timeout 60 return 0 else $xmessage -buttons "Suspend:3,Terminate:2,Cancel:0" -center "$DIALOG_MESSAGE" fi }
Там есть еще
xdialog_yesnosuspend()
dialog_yesnosuspend()
их надо по аналогии переделать.
Переделал, проверка на наличие запущенного процесса 1с работает, но xmessage с предупреждением, что 1с запущена вылазит на доли секунды и сразу пропадает, если закрыть 1с то появляется стандартный диалог "terminate" or "suspend", видимо timeout 60 не работает, пробовал $DIALOG_MESSAGE подставлять, но не сработало, сейчас вот так выглядит:
Код: Выделить всё
xmessage_yesnosuspend()
{
proc_1c=`ps -u $USER|grep 1Cv7.exe`
if [ -n "$proc_1c" ]; then
$xmessage "Error: 1C is running! Try later." -center -timeout 60
return 0
else
$xmessage -buttons "Suspend:3,Terminate:2,Cancel:0" -center "$DIALOG_MESSAGE"
fi
}
xdialog_yesnosuspend()
{
proc_1c=`ps -u $USER|grep 1Cv7.exe`
if [ -n "$proc_1c" ]; then
$xmessage "Error: 1C is running! Try later." -center -timeout 60
return 0
else
$DIALOG --title "$DIALOG_CAPTION" --buttons-style text --ok-label "Suspend" --cancel-label "Terminate" --yesno "$DIALOG_MESSAGE Close this dialog to $
RC=$?
[ $RC -eq 0 ] && return 3
[ $RC -eq 1 ] && return 2
fi
}
dialog_yesnosuspend()
{
proc_1c=`ps -u $USER|grep 1Cv7.exe`
if [ -n "$proc_1c" ]; then
$xmessage "Error: 1C is running! Try later." -center -timeout 60
return 0
else
$DIALOG --stdout --title "$DIALOG_CAPTION" --yes-label "Suspend" --no-label "Terminate" --yesno "$DIALOG_MESSAGE\n\nPress 'Esc' to cancel." 8 60
RC=$?
[ $RC -eq 0 ] && return 3
[ $RC -eq 1 ] && return 2
fi
}
Re: FreeNX + 1с закрытие сессии
masterhide писал(а): ↑19.02.2010 11:33Переделал, проверка на наличие запущенного процесса 1с работает, но xmessage с предупреждением, что 1с запущена вылазит на доли секунды и сразу пропадает, если закрыть 1с то появляется стандартный диалог "terminate" or "suspend", видимо timeout 60 не работает, пробовал $DIALOG_MESSAGE подставлять, но не сработало, сейчас вот так выглядит:
Я же сказал, "по аналогии", а не просто копи-паст.
Функции разные из-за разных вариантов вывода сообщений (Xdialog, dialog, xmessage), у них разный синтаксис.
Определи какой именно у тебя вариант используется и изучай как в нем паузу делать.
-
- Сообщения: 51
- ОС: OpenSUSE11
Re: FreeNX + 1с закрытие сессии
Djelf писал(а): ↑19.02.2010 11:43masterhide писал(а): ↑19.02.2010 11:33Переделал, проверка на наличие запущенного процесса 1с работает, но xmessage с предупреждением, что 1с запущена вылазит на доли секунды и сразу пропадает, если закрыть 1с то появляется стандартный диалог "terminate" or "suspend", видимо timeout 60 не работает, пробовал $DIALOG_MESSAGE подставлять, но не сработало, сейчас вот так выглядит:
Я же сказал, "по аналогии", а не просто копи-паст.
Функции разные из-за разных вариантов вывода сообщений (Xdialog, dialog, xmessage), у них разный синтаксис.
Определи какой именно у тебя вариант используется и изучай как в нем паузу делать.
Как раз в моем случае dialog_yesnosuspend() отвечает за вызов диалога завершения сессии, поэтому правил только эту часть.
Вот так сделал, вроде работает:
Код: Выделить всё
dialog_yesnosuspend()
{
proc_1c=`ps -u $USER|grep 1Cv7.exe`
if [ -n "$proc_1c" ]; then
$DIALOG --stdout --ok-label "Close" --title "$DIALOG_CAPTION" --msgbox "1C is running, try again later." 0 0
return 0
else
$DIALOG --stdout --title "$DIALOG_CAPTION" --yes-label "Suspend" --no-label "Terminate" --yesno "$DIALOG_MESSAGE\n\nPress 'Esc' to cancel." 8 60
RC=$?
[ $RC -eq 0 ] && return 3
[ $RC -eq 1 ] && return 2
fi
}
Re: FreeNX + 1с закрытие сессии
попробовал так как описано выше, у меня не работает использую RX@Etersoft 1.1.2 , есть еще варианты?