<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US"> <head> <title> GmManualCustomizingClientStartupRu < Gnumed < Foswiki</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="robots" content="noindex" /> <link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss.html" /> <link rel="icon" href="../rsrc/System/ProjectLogos/favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" href="../rsrc/System/ProjectLogos/favicon.ico" type="image/x-icon" /> <link rel="alternate" href="http://wiki.gnumed.de/bin/edit/Gnumed/GmManualCustomizingClientStartupRu?t=1362919415" type="application/x-wiki" title="edit GmManualCustomizingClientStartupRu" /> <meta name="description" content="GmManualCustomizingClientStartupRu" /> <!--[if IE]></base><![endif]--> <style type="text/css" media="all"> @import url('../rsrc/System/SkinTemplates/base.css'); </style> <style type="text/css" media="all"> @import url('../rsrc/System/SkinTemplates/default.css'); </style> <!--[if IE]><style type="text/css" media="screen"> pre { overflow-x:auto; padding-bottom:expression(this.scrollWidth > this.offsetWidth ? 16 : 0); } </style> <![endif]--> <meta name="foswiki.PUBURL" content="http://wiki.gnumed.de/pub" /> <!-- PUBURL --> <meta name="foswiki.PUBURLPATH" content="/pub" /> <!-- PUBURLPATH --> <meta name="foswiki.SCRIPTSUFFIX" content="" /> <!-- SCRIPTSUFFIX --> <meta name="foswiki.SCRIPTURL" content="http://wiki.gnumed.de/bin" /> <!-- SCRIPTURL --> <meta name="foswiki.SCRIPTURLPATH" content="/bin" /> <!-- SCRIPTURLPATH --> <meta name="foswiki.SERVERTIME" content="10%20Mar%202013%20-%2013:43" /> <!-- SERVERTIME --> <meta name="foswiki.SKIN" content="twikinet%2c%20pattern" /> <!-- SKIN --> <meta name="foswiki.SYSTEMWEB" content="System" /> <!-- SYSTEMWEB --> <meta name="foswiki.TOPIC" content="GmManualCustomizingClientStartupRu" /> <!-- TOPIC --> <meta name="foswiki.USERNAME" content="KarstenHilbert" /> <!-- USERNAME --> <meta name="foswiki.USERSWEB" content="Main" /> <!-- USERSWEB --> <meta name="foswiki.WEB" content="Gnumed" /> <!-- WEB --> <meta name="foswiki.WIKINAME" content="KarstenHilbert" /> <!-- WIKINAME --> <meta name="foswiki.WIKIUSERNAME" content="Main.KarstenHilbert" /> <!-- WIKIUSERNAME --> <meta name="foswiki.NAMEFILTER" content="%5b%5cs%5c*%3f~%5e%5c%24%40%25%60%22'%26%3b%7c%3c%3e%5c%5b%5c%5d%23%5cx00-%5cx1f%5d" /> <!-- NAMEFILTER --><!--JQUERYPLUGIN::FOSWIKI::META--> <script type='text/javascript' src='../rsrc/System/JQueryPlugin/jquery-1.4.3.js'></script><!--JQUERYPLUGIN--> <script type='text/javascript' src='../rsrc/System/JQueryPlugin/plugins/livequery/jquery.livequery.js'></script><!--JQUERYPLUGIN::LIVEQUERY--> <script type='text/javascript' src='../rsrc/System/JQueryPlugin/plugins/foswiki/jquery.foswiki.js'></script><!--JQUERYPLUGIN::FOSWIKI--> <script type='text/javascript' src='../rsrc/System/JSTreeContrib/jquery.jstree.js'></script><!--JQUERYPLUGIN::JSTREE--> </head> <body class=""><div class="foswikiPage"> <a name="PageTop"></a> <p></p> <p></p> <h1><a name="GNUmed"></a> Настройка запуска и отключения клиента GNUmed </h1> <p></p> Имеется несколько встроенных обработчиков для настройки процесса запуска/завершения. Это дополнение к любым пользовательским файлам сценариев/пакетов shell, в которых для запуска клиента и/или освоенного исходного кода Python для достижения любого необходимого поведения. <p></p> <a name="foswikiTOC"></a><div class="foswikiToc"> <ul> <li> <a href="#A_"> Запуск </a> <ul> <li> <a href="#shell"> командная строка shell </a> </li> <li> <a href="#shell:_61_47usr_47bin_47gnumed_61"> Пускатель сценария shell: /usr/bin/gnumed </a> </li> <li> <a href="#Python:_61gnumed.py_61"> Пускатель сценария Python: gnumed.py </a> </li> <li> <a href="#A_40_44_41"> другая настройка клиента запуска (плагины, рабочие места) </a> </li> <li> <a href="#A_:_61Gnumed_47wxGladeWidgets_47_61"> загружаемый виджет: Gnumed/wxGladeWidgets/ </a> </li></ul> </li> <li> <a href="#A_AN1"> Завершение </a> </li></ul> </div> <p></p> <h2><a name="A_"></a> Запуск </h2> <p></p> <h3><a name="shell"></a> командная строка shell </h3> <p></p> Клиент GNUmed принимает несколько опций командной строки. Они описаны на <a href="http://cvs.savannah.gnu.org/viewcvs/gnumed/gnumed/client/doc/man-pages/gnumed.1?root=gnumed&view=markup" target="_top">странице руководства man</a>. Параметры передаются в сценарий пускателя shell <code>/usr/bin/gnumed</code> и, в конечном итоге, в сценарий пускателя Python <code>gnumed.py</code>. <p></p> В частности, может быть удобно использовать <code><b>--conf-file</b></code> для указания использования файла конфигурации, кроме используемого GNUmed по умолчанию. Этот вопрос рассматривается далее в <a href="GmManualConfigFilesRu.html" target="_top">GmManualConfigFiles</a>. <p></p> <h3><a name="shell:_61_47usr_47bin_47gnumed_61"></a> Пускатель сценария shell: <code>/usr/bin/gnumed</code> </h3> <p></p> Клиент, обычно, запускается сценарием shell <code>/usr/bin/gnumed</code>, который включен в tar-архив релиза. Этот сценарий ищет <p></p> <ul> <li> <code>/etc/gnumed/gnumed-startup-local.sh</code> <ul> <li> можно использовать для "локальной" общесистемной настройки </li></ul> </li></ul> <p></p> <ul> <li> <code>~/.gnumed/scripts/gnumed-startup-local.sh</code> <ul> <li> можно использовать для пользовательской настройки </li></ul> </li></ul> <p></p> и выполняет их (в таком порядке), если они существуют. Оба сценария могут сделать все, чтобы выполнить пользовательский пуск <code>/usr/bin/gnumed</code> (если только он не root). GNUmed, как проект, никогда не будет перезаписывать эти файлы (но ваш менеджер пакетов время от времени может предоставлять обновленные <code>/etc/gnumed/gnumed-startup-local.sh</code>). <p></p> <h3><a name="Python:_61gnumed.py_61"></a> Пускатель сценария Python: <code>gnumed.py</code> </h3> <p></p> При вызове этого скрипта клиент запускается, как таковой. При запуске предусмотрено два <a href="GmManualHooksFrameworkRu.html">обработчика</a> настройки: <p></p> <ul> <li> средство <code>startup-before-GUI</code> <ul> <li> вызывается до инициализации GUI wxPython </li></ul> </li></ul> <p></p> <ul> <li> средство <code>startup-post-GUI-init</code> <ul> <li> вызывается после инициализации GUI wxPython, но до того, как управление потоком будет передано для пользовательского ввода </li></ul> </li></ul> <p></p> Среди прочего, подключение к бэкэнду <a href="GmManualCustomizingBackendLoginRu.html">(который также может быть настроен)</a> происходит между этими двумя обработчиками. <p></p> <h3><a name="A_40_44_41"></a> другая настройка клиента запуска (плагины, рабочие места) </h3> <p></p> Дополнительные настройки могут включать выбор плагинов, которые должны загружаться из панели инструментов GNumed, и их порядок. Это рассматривается далее <a href="WorkPlaceRu.html" target="_top">WorkPlaces</a>. <p></p> <h3><a name="A_:_61Gnumed_47wxGladeWidgets_47_61"></a> загружаемый виджет: <code>Gnumed/wxGladeWidgets/</code> </h3> <p></p> Код пускателя клиента GNUmed <code>gnumed.py</code> проверяет директорию <code>~/.gnumed/local_code/CLIENT_BRANCH/Gnumed/wxGladeWidgets</code>. Если она существует, он будет доступным для импорта всякий раз, когда GNUmed импортирует код из пакета <code>Gnumed.wxGladeWidgets</code>. Некоторые условия должны выполнять: <p></p> <ul> <li> права доступа <code>~/.gnumed/local_code/CLIENT_BRANCH/Gnumed/wxGladeWidgets</code> должны быть <code>0700 (rwx------</code>) </li> <li> никакие другие файлы или директории, кроме <code>wxGladeWidgets</code>, <code>__init__.py</code>, и <code>__init__.pyc</code> не могут быть в <code>~/.gnumed/local_code/CLIENT_BRANCH/Gnumed/</code> </li> <li> (пустые) файлы <code>__init__.py</code> должны иметься в <code>~/.gnumed/local_code/CLIENT_BRANCH/Gnumed/</code> и <code>~/.gnumed/local_code/CLIENT_BRANCH/Gnumed/wxGladeWidgets/</code> </li></ul> <p></p> Путь <code>CLIENT_BRANCH</code> существует для размещения с ветвью, в которой кто-нибудь захочет переопределить виджеты wxGlade, потому что может понадобится разный код между ветвями. <p></p> <hr /> <h2><a name="A_AN1"></a> Завершение </h2> <p></p> Во время выключения вызывается обработчик <code>shutdown-post-GUI</code>, когда закрыт GUI wxPython. <p></p> <a name="TopicEnd"></a> <p></p> <p></p> <p></p> <p></p> </div> </body></html>