SObjectizer
5.1
|
Описание функциональности so_sysconf.process, so_sysconf.ntservice, so_sysconf.daemon.
Практика использования so_sysconf в различных SObjectizer-приложениях показала, что со временем практически вся прикладная логика приложений оказывается в DLL, собираемых вместе через so_sysconf . А функция main() приложения выполняет всего две операции: запуск SObjectizer и регистрацию подсистемы so_sysconf с последующей обработкой единственного конфигурационного файла. При этом реализация main() чаще всего просто тиражировалась из проекта в проект путем обычного копирования соответствующего cpp-файла. Для того, чтобы избежать этого копирования и предоставить всем заинтересованным приложениям унифицированный so_sysconf-загрузчик в состав so_sysconf включено три штатных загрузчика: so_sysconf.process (SObjectizer-приложение в виде обычного процесса), so_sysconf.ntservice (SObjectizer-приложение в виде NT Service в операционных системах Windows) и so_sysconf.deamon (SObj-приложение в виде демона) .
Приложение so_sysconf . process отвечает за запуск SObjectizer с указанным диспетчером, за регистрацию подсистемы so_sysconf и за передачу подсистеме so_sysconf указанного конфигурационного файла для обработки. Приложение завершает свою работу после завершения SObjectizer.
Вызов so_sysconf.process осуществляется со следующими аргументами:
so_sysconf.process [options] -s , -- script <file> -- Имя файл, содержащего скрипт so_sysconf --disp-one-thread -- Использовать SO-диспетчер с одной нитью --disp-active-obj -- Использовать SO-диспетчер активных объектов --disp-active-group -- Использовать SO-диспетчер активных групп --app-path-etc <path> -- Путь для конфигурационных файлов --app-path-log <path> -- Путь для файлов логов --app-path-data <path> -- Путь для файлов данных --app-path-tmp <path> -- Путь для временных файловы --ostream-logger -- Использовать ostream sysconf logger -h , --help -- Показать подсказку
Параметры –disp-one-thread, –disp-active-obj и –disp-active-group указывают, какой диспетчер будет использоваться при старте SObjectizer. По умолчанию, если ни один из параметров не указан, будет использоваться диспетчер с активными объектами (что аналогично использованию только параметра –disp-active-obj). Если указан только –disp-one-thread, то используется диспетчер с одной рабочей нитью.
Параметр –script (короткий аналог -s) задает имя конфигурационного файла, которое будет передано подсистеме so_sysconf после успешного старта SObjectizer. Если в процессе загрузки данного конфигурационного файла произойдет ошибка, то so_sysconf.process завершит свою работу. Это обязательный параметр, который должен быть задан в командной строке.
Параметры –app-path-etc, –app-path-log, –app-path-data и –app-path-tmp задают соответствующие части app_paths для so_sysconf_layer_t. Это необязательные параметры, в случае отсутствия какого-либо из них в качестве соответствующего значения app_paths принимается .(текущий каталог).
Параметр –ostream-logger предписывает подсистеме so_ sysconf отображать на стандартные потоки вывода сообщения о происходящих с so_sysconf событиях.
Например, следующая командная строка:
so_sysconf . process --disp-active-group --ostream-logger --app-path-etc etc --app-path-log log/aag_3 --app-path-data log/db --script etc/sysconf.cfg
предписывает запустить SObjectizer с использованием диспетчера с активными группами (в дополнение к нему будет добавлен диспетчер с активными объектами) и передать подсистеме so_sysconf в качестве конфигурационного файла файл etc/sysconf.cfg. Все происходящие с so_sysconf события будут отображаться на стандартный поток вывода. Параметры app_paths слоя so_sysconf для приложения получит следующие значения:
Приложение so_sysconf.ntservice выполняет ту же задачу, что и so_sysconf.process, но предназначено для того, чтобы работать в качестве Windows NT Services. Поэтому кроме возможностей so_sysconf.process предоставляет так же возможность инсталляции/деинстал- ляции, запуска/останова Windows сервиса.
Вызов so_sysconf.ntservice осуществляется со следующими аргументами:
so_sysconf.ntservice [options] --svc-name <NAME> -- Имя сервиса --svc-work-path <PATH> -- Путь для сервиса --svc-install -- Установить сервис --svc-use-current-path -- Использовать текущий путь как рабочий для сервиса --svc-remove -- Удалить сервис --svc-start -- Старт сервиса --svc-stop -- Остановка сервиса --svc-manual Старт сервиса должен производиться вручную (по умолчанию : auto) --svc-debug Старт сервиса в режиме debug, как консольное приложение -s , -- script <file> -- Имя файл, содержащего скрипт so_sysconf --disp-one-thread -- Использовать SO-диспетчер с одной нитью --disp-active-obj -- Использовать SO-диспетчер активных объектов --disp-active-group -- Использовать SO-диспетчер активных групп --app-path-etc <path> -- Путь для конфигурационных файлов --app-path-log <path> -- Путь для файлов логов --app-path-data <path> -- Путь для файлов данных --app-path-tmp <path> -- Путь для временных файловы --ostream-logger -- Использовать ostream sysconf logger -h , --help -- Показать подсказку
Параметр –svc-name задает имя сервиса в операционной системе (это имя, которое затем можно указывать в таких командах, как net start и net stop). Если этот параметр используется совместно с –svc-install, то он задает имя инсталлируемого сервиса. Если же –svc-name используется совместно с –svc-start, –svc-stop и –svc-remove, то он задает имя уже проинсталлированного сервиса над которым нужно выполнять определенное действие. Параметр –svc-install указывает, что сервис нужно зарегистрировать. По умолчанию проинсталлированный сервис помечается как автоматически запускаемый при старте системы. Если требуется, чтобы новый сервис запускался вручную, то при его инсталляции необходимо указать параметр –svc-manual-startup. Параметр –svc-work-path при инсталляции сервиса указывает, какой каталог должен быть домашним для сервиса (т.е., какой каталог будет текущим для сервиса, когда сервис будет запущен операционной системой). Параметр –svc-use-current-path предписывает so_sysconf.ntservice использовать в качестве домашнего тот каталог, из которого so_sysconf.ntservice запускалась для инсталляции сервиса. Поэтому параметры –svc-work-path и –svc-use-current-path не могут использоваться совместно. Параметр –svc-start предписывает запустить сервис, который должен был быть до этого проинсталлирован. А параметр –svc-stop, напротив, предписывает остановить сервис. Вме- сто запуска so_sysconf.ntservice с этими параметрами можно использовать net start и net stop. Параметр –svc-remove предписывает деинсталлировать проинсталлированный ранее сервис. Параметр –svc-debug указывает so_sysconf.ntservice не выполнять никаких действий с базой данных сервисов Windows, а запускать сервис в виде обычного консольного приложения. Этот режим очень удобен при отладке. Остальные параметры имеют то же самое назначение, что и для so_sysconf . process
Если параметр –svc-debug не указан, то все основные параметры (т.е. тип диспетчера и значения app_paths) должны указываться при инсталляции сервиса. Затем эти параметры сохраняются в описании сервиса в базе данных сервисов Windows и используются при последующих стартах сервиса. Поэтому, если необходимо запустить приведенный выше пример запуска s-sysconf.process в качестве сервиса, то необходимо выполнить следующие запуски so_sysconf.ntservice:
> so_sysconf.ntservice --svc-name MyService -- svc-install --svc-use-current-path --disp-active-group --ostream-logger --app-path-etc etc --app-path-log log/MyService --app-path-data db/MyService --script etc/sysconf.cfg > so_sysconf.ntservice -- svc-name MyService --svc-start
Приложение so_sysconf.daemon выполняет ту же задачу, что и so_sysconf.process, но предназначено для того, чтобы работать в качестве демона в Unix. Приложение so_sysconf.daemon получает такой же набор аргументов, как и so_sysconf process, но перед выполнением основной работы (старта SObjectizer и подсистемы so_sysconf ) :
Вызов so_sysconf.ntservice осуществляется со следующими аргументами:
so_sysconf.daemon [options] -s , -- script <file> -- Имя файл, содержащего скрипт so_sysconf --disp-one-thread -- Использовать SO-диспетчер с одной нитью --disp-active-obj -- Использовать SO-диспетчер активных объектов --disp-active-group -- Использовать SO-диспетчер активных групп --app-path-etc <path> -- Путь для конфигурационных файлов --app-path-log <path> -- Путь для файлов логов --app-path-data <path> -- Путь для файлов данных --app-path-tmp <path> -- Путь для временных файловы --ostream-logger -- Использовать ostream sysconf logger -h , --help -- Показать подсказку
Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:21. Создано системой 1.8.3.1 |