FreeNX + 1с закрытие сессии

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

Ответить
masterhide
Сообщения: 51
ОС: OpenSUSE11

FreeNX + 1с закрытие сессии

Сообщение masterhide »

Имеется FreeNX server от etersoft с патчами от уважаемого dimbor, клиенты работают в десктоп режиме в основном с 1С, если закрыть 1С и сразу завершить nx сессию - крашатся базы, так-как 1С завершает работу не сразу а с интервалом 3-5 секунд. Отсюда вопрос, можно ли принудительно убрать из диалога закрытия nx сессии кнопку "terminate" ? Или же поставить задержку 10 секунд на закрытие сессии? В конфиге nxserver ничего по этому вопросу не нашел. Буду признателен если посоветуете решение.
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: FreeNX + 1с закрытие сессии

Сообщение Djelf »

masterhide писал(а):
18.02.2010 15:48
Отсюда вопрос, можно ли принудительно убрать из диалога закрытия nx сессии кнопку "terminate" ? Или же поставить задержку 10 секунд на закрытие сессии? В конфиге nxserver ничего по этому вопросу не нашел. Буду признателен если посоветуете решение.

Убрать ссылку /usr/bin/nxclient (если есть), тогда будет запускаться диалог завершения из /usr/bin/nxdialog
В нем есть xmessage_yesnosuspend() вот там кнопку terminate можно убрать, или поставить задержку, а еще лучше скрипт на проверку завершилась ли 1С.

P.S. Тему перенесите пожалуйста в "Терминальные решения".
Спасибо сказали:
masterhide
Сообщения: 51
ОС: OpenSUSE11

Re: FreeNX + 1с закрытие сессии

Сообщение masterhide »

Ссылки на nxclient вроде как нет, как и самого nxclient, диалог вызывается и там есть выбор, suspend или terminate, как я понимаю terminate надо убирать в nxdialog? А не могли бы примерный скрипт подсказать? На проверку завершения 1с или на паузу 10 сек? Как я понял все это дело нужно копать в
/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Уведомление от модератора
в терминальные решения
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: FreeNX + 1с закрытие сессии

Сообщение Djelf »

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()
их надо по аналогии переделать.
Спасибо сказали:
masterhide
Сообщения: 51
ОС: OpenSUSE11

Re: FreeNX + 1с закрытие сессии

Сообщение masterhide »

Благодарю, завтра попробую.
Спасибо сказали:
masterhide
Сообщения: 51
ОС: OpenSUSE11

Re: FreeNX + 1с закрытие сессии

Сообщение masterhide »

Djelf писал(а):
18.02.2010 18:01
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()
их надо по аналогии переделать.


Переделал, проверка на наличие запущенного процесса 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
}
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: FreeNX + 1с закрытие сессии

Сообщение Djelf »

masterhide писал(а):
19.02.2010 11:33
Переделал, проверка на наличие запущенного процесса 1с работает, но xmessage с предупреждением, что 1с запущена вылазит на доли секунды и сразу пропадает, если закрыть 1с то появляется стандартный диалог "terminate" or "suspend", видимо timeout 60 не работает, пробовал $DIALOG_MESSAGE подставлять, но не сработало, сейчас вот так выглядит:

Я же сказал, "по аналогии", а не просто копи-паст.
Функции разные из-за разных вариантов вывода сообщений (Xdialog, dialog, xmessage), у них разный синтаксис.
Определи какой именно у тебя вариант используется и изучай как в нем паузу делать.
Спасибо сказали:
masterhide
Сообщения: 51
ОС: OpenSUSE11

Re: FreeNX + 1с закрытие сессии

Сообщение masterhide »

Djelf писал(а):
19.02.2010 11:43
masterhide писал(а):
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
}
Спасибо сказали:
Bedazzled
Сообщения: 311
ОС: ubuntu

Re: FreeNX + 1с закрытие сессии

Сообщение Bedazzled »

попробовал так как описано выше, у меня не работает использую RX@Etersoft 1.1.2 , есть еще варианты?
Спасибо сказали:
Ответить