Запуск фоновых сервисов Detrix

Установленный дистрибутив Detrix под Windows или самостоятельно настроенная система под Linux (FreeBSD) не выполняет запуск фоновых сервисов. А эти сервисы обеспечивают выполнение таких функций, как прием-отправка почты на внешние почтовые ящики, реализацию контроля и напоминаний на документы, индексацию данных для работы полнотекстового поиска. Таким образом, если не выполнить действия, приведенные в настоящей статье, ничего из перечисленного работать не будет. Выполнять действия нужно над версией не ниже 1.0.2. Если у вас более старая версия, обновитесь. И установите в файле settings.php, который находится в корневом каталоге системы, соответствующие параметры доступа к базе данных:

$aSettings['db'] = array(
'host' => '127.0.0.1',
'port' => '5432', //для дистрибутива под Windows порт 6543
'database' => 'detrix',
'user' => 'detrix',
'password' => 'пароль',
'scheme' => 'manuscript'
);

Не помешает также установить параметр $aSettings['hostURL'] равным URL-адресу вашего сервера Detrix. Этот адрес система будет использовать при отправке почтовых сообщений от действий Контроль и Напоминатель.

Запуск фоновых служб в Detrix осуществляется при помощи стандартных планировщиков времени операционных систем. Начнем с мира Unix.

Запуск фоновых служб Detrix в Linux и FreeBSD

Прописываем в /etc/crontab для Linux

*  *  *  *  *  www-data  /usr/bin/php /var/www/detrix/cs.php > /dev/null

для FreeBSD

*/1  *  *  *  *  www  /usr/local/bin/php /var/www/detrix/cs.php > /dev/null

Готово.

Запуск фоновых служб Detrix в Windows

Рассматриваем вариант настройки под Windows 7. В других системах корпорации Microsoft порядок настройки аналогичен с учетом поправки на окна версию Windows.

Отправляемся в Панель управления, Систему и безопасность, Администрирование, где находим Планировщик заданий. Справа находим действие Создать задачу. А дальше ориентируйтесь по нижеприведенным скриншотикам:

Вкладка Общие

 

Вкладка Триггеры

Вкладка Триггеры планировщика задач

 

Вкладка Действия

Вкладка Действия планировщика задач

Здесь можно внести некоторые усовершенствования. Без них раз в минуту будут появляться черные консольные окна. Пропадать они будут быстро, но, если вы планируете работать за этим компьютером, уже спустя час работы осадок гарантирован. А потом лучше воспользоваться какой-нибудь утилитой, которая подавляет вывод этих окон. Например, hidcon (на всякий случай внизу этой страницы приложена копия этой утилиты). И тогда нужно будет изменить вкладку Действия, указав в качестве программы пусть к hidcon.exe (например, C:\hidcon.exe), а в качестве аргументов Z:\usr\bin\php.exe -q z:\home\localhost\www\cs.php

Вкладка Условия

Вкладка Условия планировщика задач

Вкладка Параметры

Вкладка Параметры планировщика задач

Готово.

Лог-файлы фоновых сервисов Detrix

Результаты запуска можно наблюдать в лог-файле /var/www/detrix/var/logs/cron-ГГГГММДД.log,
где ГГГГ — четыре цифры текущего года, ММ — две цифры текущего месяца, а ДД — двузначное число дня. В этом файле раз в минуту будут появляться записи, похожие на нижеприведенные:

[SERVER STARTED AT: 2011.12.25 13:28:01 ]
[S-601F id:286 type:control pid:24382 datetime:2011.12.25 13:29:01 status: 1/13]
[E-601F id:286 type:control pid:24382 datetime:2011.12.25 13:29:01 timeout: 60 status:1/13]
[S-5A89 id:285 type:importmail pid:24382 datetime:2011.12.25 13:29:01 status: 1/13]
[E-5A89 id:285 type:importmail pid:24382 datetime:2011.12.25 13:29:02 timeout: 90 status:1/13]
[S-323B id:287 type:index pid:24382 datetime:2011.12.25 13:29:02 status: 1/13]
[E-323B id:287 type:index pid:24382 datetime:2011.12.25 13:29:03 timeout: 90 status:1/13]
[S-36BC id:71 type:remind pid:24382 datetime:2011.12.25 13:29:03 status: 1/13]
[E-36BC id:71 type:remind pid:24382 datetime:2011.12.25 13:29:03 timeout: 60 status:1/13]
[S-AEBD id:290 type:sendmail pid:24382 datetime:2011.12.25 13:29:03 status: 1/13]
[E-AEBD id:290 type:sendmail pid:24382 datetime:2011.12.25 13:29:03 timeout: 90 status:1/13]

Сии иероглифы означают следующее:

  • [SERVER STARTED AT: 2011.12.25 13:28:01 ] — дата запуска сервиса. Если вы не увлекаетесь перезагрузкой своего сервера, такую надпись в логах наблюдать будете очень нечасто.
  • [S-601F id:286 type:control pid:24382 datetime:2011.12.25 13:29:01 status: 1/13] — сервис control (он относится к действию Контроль) c идентификатором 286 запущен (S — Start), системный PID процесса 24382.
  • [E-601F id:286 type:control pid:24382 datetime:2011.12.25 13:29:01 timeout: 60 status:1/13] — этот же сервис завершил свою работу.

Комментарии

  1. MARKUS:

    Linux , ошибка при работе:
    PHP Fatal error: Class ‘MSF_String’ not found in /var/www/html/detrix/modules/workflow/actions/decision/variables/WFA_DecisionVar.php on line 214

  2. MARKUS:

    Извините, не в той теме написал.
    Эта ошибка происходит 1 раз в час при запуске cron’a.

    • Будем разбираться. Ошибка незначительная, на работоспособность системы не влияет. Теоретически, ее вообще быть не должно, т.к. данный код отвечает за переменную РЕШЕНИЕ, которая в фоновых службах не используется.

  3. Antalis:

    Мне под Ubuntu
    echo «* * * * * nice -n 19 php5 /var/www/detrix/cs.php > /dev/null» > /var/spool/cron/crontabs/detrix
    Не помогло.
    Вбил вручную * * * * * nice -n 19 php5 /var/www/detrix/cs.php > /dev/null через
    sudo crontab -e -u detrix

    При попытке выполнить задание получается дичь

    PHP Deprecated: Comments starting with ‘#’ are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0
    PHP Warning: include_once(../../system/utils/MSF_Logger.php): failed to open stream: No such file or directory in /var/www/detrix/cs/library/CronoSphere.php on line 4
    PHP Warning: include_once(): Failed opening ‘../../system/utils/MSF_Logger.php’ for inclusion (include_path=’.:/usr/share/php:/usr/share/pear:/var/www/detrix’) in /var/www/detrix/cs/library/CronoSphere.php on line 4
    PHP Warning: include_once(Archive/Tar.php): failed to open stream: No such file or directory in /var/www/detrix/cs/library/Updater.php on line 3
    PHP Warning: include_once(): Failed opening ‘Archive/Tar.php’ for inclusion (include_path=’.:/usr/share/php:/usr/share/pear:/var/www/detrix’) in /var/www/detrix/cs/library/Updater.php on line 3
    [SERVER RESTARTED AT: 2012.03.23 16:09:24 ]
    PHP Fatal error: Uncaught exception ‘MSF_ThrowableException’ with message ‘fopen(/var/www/detrix/var/logs/cron-20120323.log): failed to open stream: Permission denied
    Number: 2
    Type: Warning
    Line: 53
    File: /var/www/detrix/system/utils/MSF_File.php
    ‘ in /var/www/detrix/system/msfErrorHandler.php:35
    Stack trace:
    #0 [internal function]: msfErrorHandler(2, ‘fopen(/var/www/…’, ‘/var/www/detrix…’, 53, Array)
    #1 /var/www/detrix/system/utils/MSF_File.php(53): fopen(‘/var/www/detrix…’, ‘a+’)
    #2 /var/www/detrix/system/utils/MSF_Logger.php(34): MSF_File::write(‘/var/www/detrix…’, ‘MSF_ThrowableEx…’, ‘a+’, 509)
    #3 /var/www/detrix/system/utils/MSF_Logger.php(50): MSF_Logger::logMessage(‘MSF_ThrowableEx…’, ‘cron’)
    #4 /var/www/detrix/cs.php(41): MSF_Logger::logTrace(Object(MSF_ThrowableException), ‘cron’)
    #5 /var/www/detrix/cs.php(94): CSApplication::main()
    #6 {main}
    thrown in /var/www/detrix/system/msfErrorHandler.php on line 35

    • Antalis:

      Понял в чём дело.
      1) У Ubuntu немного другое дерево зависимостей и пакет php5-cli надо ставить явно. Сам он не подцепляется как надо. Если не ставить, то кое-что работать будет и без него, но фоновые службы в это «кое-что» не попадают. (И да, при установке пакет затрёт /etc/php5/cli/php.ini)
      2) Файлик detrix в crontabs может не читаться cron-ом из-за дефектного символа закрытия файла. (Не весь, а только последняя запись, но поскольку у нас она одна, то именно её и не будет выполнять.) Я решил эту проблему добавив строчку с #

  4. Serg:

    Два дня назад настроил запуск фоновых служб в Ubuntu. Все работало, но сегодня после включения сервера в логах вдруг появилось такое:
    [SERVER STARTED]
    MSF_ThrowableException: fopen(/home/serg/www/detrix/var/.lock): failed to open stream: Permission denied
    Number: 2
    Type: Warning
    Line: 103
    File: /home/serg/www/detrix/cs/library/CSLauncher.php

    ? ?
    /home/serg/www/detrix/cs/library/CSLauncher.php 103
    /home/serg/www/detrix/cs/library/CSLauncher.php 120
    /home/serg/www/detrix/cs.php 35
    /home/serg/www/detrix/cs.php 94

    Ничего не изменял… Что могло случиться с доступом?

  5. Vasya:

    [SERVER RESTARTED]
    MSF_ThrowableException: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: database "doc" does not exist
    Number: 2
    Type: Warning
    Line: 40
    File: Z:\home\localhost\www\system\utils\MSF_DB.php

    ? ?
    Z:\home\localhost\www\system\utils\MSF_DB.php 40
    Z:\home\localhost\www\cs\library\CSLauncher.php 41
    Z:\home\localhost\www\cs\library\CSLauncher.php 48
    Z:\home\localhost\www\cs.php 29
    Z:\home\localhost\www\cs.php 97

    Кусок файла cron*.log с ошибкой . Где надо поправить ?

Задать вопрос

Copyright © 2011-2013 Андрей Суров При копировании материалов сайта гиперссылка Detrix.kz обязательна