Зонд как служба¶
Служба в Windows¶
Зонд может быть установлен как служба вручную или по автоматическому сценарию.
Установка вручную¶
- Скопируйте содержимое папки win64 из скачанного архива зонда в необходимую директорию. Запустите консоль с правами администратора и перейдите в папку с зондом. 
- Введите имя службы без пробела (например myBoroService) и выполните команду запуска зонда с опцией - -R:- streamMonitor.exe -RmyBoroService- Служба будет установлена. 
- Откройте окно оснастки “Службы” - services.msc. Найдите и запустите установленную службу myBoroService.  
- При успешном соединении зонда с сервером в окне “Свойства” вы увидите статус “Выполняется”.   - Примечание - По умолчанию служба устанавливается с автоматическим запуском при старте операционной системы. Тип запуска можно изменить в окне “Свойства”. 
- Для установки второй службы создайте копию папки с зондом из скачанного архива в необходимой директории. Имя каждого сервиса должно быть уникальным. 
Остановка и удаление службы¶
- Чтобы остановить службу зонда, откройте её свойства и нажмите кнопку “Остановить”. Статус изменится на “Остановлена”. 
- Чтобы удалить службу, в командной строке с правами администратора введите имя службы без пробела и выполните команду запуска зонда с опцией - -U:- streamMonitor.exe -UmyBoroService
Установка по автоматическому сценарию¶
Вы можете установить и запустить службу по автоматическому сценарию.
Сценарии для работы с зондом находятся в архиве зонда в папке share/service-daemon.
Перед установкой зонда как службы необходимо скопировать сценарии BoroServiceInstall.bat и BoroServiceUninstall.bat в папку зонда.
Сценарий BoroServiceInstall.bat последовательно выполняет три действия:
- регистрирует службу с именем - Boro_service;
- создает правила для брандмауэра на разрешение входящего и исходящего трафиков для streamMonitor.exe в любых сетях; 
- запускает зарегистрированную службу. 
Сценарий BoroServiceUninstall.bat удаляет созданные для службы правила, останавливает и удаляет зарегистрированную службу. Чтобы установить или удалить службу, выполните в консоли соответствующий сценарий от имени администратора.
Сервис в systemd¶
Применимо для: CentOS 7, RHEL 7, Ubuntu 15.10, Fedora 15, и более новых версий перечисленных ОС.
Полезные ссылки
https://habrahabr.ru/company/centosadmin/blog/255845/ (RU) https://www.dynacont.net/documentation/linux/Useful_SystemD_commands/ (EN)
- Скопируйте из архива зонда файл - /share/service-daemon/boro-client.serviceв- /etc/systemd/system/.- Или создайте файл - /etc/systemd/system/boro-client.serviceследующего содержания:- [Unit] Description=Boro probe Documentation=https://boro.elecard.com https://boro.elecard.com/docs/en/UserGuide/index.html After=network-online.target Wants=network-online.target [Service] #Type=simple User=root #Group=root WorkingDirectory=/opt/elecard/boro/lin64 ExecStartPre=-!/usr/bin/chcon -t bin_t streamMonitor ExecStart=/opt/elecard/boro/lin64/streamMonitor PrivateTmp=false Restart=always RestartSec=120s [Install] WantedBy=multi-user.target - В котором необходимо правильно указать поля WorkingDirectory и ExecStart — директорию, в которой находится зонд, и путь до исполняемого файла соответственно. 
- Для проверки состояния сервиса необходимо выполнить команду: - systemctl -l status boro-client- [user@localhost ~]$ systemctl -l status boro-client boro-client.service - boro client Loaded: loaded (/etc/systemd/system/boro-client.service; disabled; vendor preset: disabled) Active: inactive (dead) - Выделенные строки говорят о том, что автозапуск не включен (disabled), и приложение не запущено (inactive (dead)). 
- Для запуска демона необходимо выполнить команду: - systemctl start boro-client- Для остановки демона необходимо выполнить команду: - systemctl stop boro-client
- Для разрешения автозапуска выполните команду: - systemctl enable boro-client- Для отключения автозапуска: - systemctl disable boro-client- Примечание - Следует помнить, что после перезапуска Linux, демон будет запущен вновь, если включен его автозапуск. 
- Проверьте состояние запущенного демона: - [user@localhost lin64]$ systemctl -l status boro-client boro-client.service - boro client Loaded: loaded (/etc/systemd/system/boro-client.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2017-03-28 16:01:35 +07; 2s ago - Выделенные строки указывают, на то, что демону разрешен автозапуск (enabled), и он сейчас запущен (active (running)). 
Сервис в SysV¶
Применимо для устаревших дистрибутивов Linux.
Полезные ссылки
https://www.opennet.ru/base/sys/run_services_tips.txt.html (RU)
Необходимо сказать, что данная система запуска сервисов сохраняется как наследие в современных дистрибутивах. Также следует знать, что функции в скрипте запуска (/etc/rc.d/init.d/functions) могут иметь разные аргументы в зависимости от дистрибутива, ознакомьтесь с документацией системы инициализации сервисов вашего дистрибутива для корректировки скрипта.
В данном разделе рассмотрена реализация скрипта автоматического запуска для дистрибутива Linux CentOS 6.8. Документация на подготовку скрипта вы можете найти в документации операционной системы /usr/share/doc/initscripts-*/sysvinitfiles.
- Перейдите в директорию - /etc/rc.d/init.d
- Скопируйте из архива зонда файл (необходимы привилегии суперпользователя) - /share/service-daemon/boro-client.- Или создайте файл boro-client (необходимы привилегии суперпользователя) со скриптом ниже. Будьте внимательны, создавая скрипт в Windows (CRLF), интерпретатор bash требует строгого соблюдения Linux-стиля (только LF) переноса строк. - #!/bin/sh # chkconfig: - 98 02 # description: OTT and multicast probe. # processname: BoroProbe # Source function library. if [ -f /etc/init.d/functions ] ; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ] ; then . /etc/rc.d/init.d/functions else exit 0 fi KIND="Boro-probe" PROCPATH="/opt/boro/lin64" start() { echo -n $"Starting $KIND services: " daemon --check=streamMonitor $PROCPATH/streamMonitor >/dev/null 2>&1 & #daemon --check=streamMonitor $PROCPATH/streamMonitor >$PROCPATH/proclog.log 2>&1 & echo } stop() { echo -n $"Shutting down $KIND services: " killproc streamMonitor echo } restart() { echo -n $"Restarting $KIND services: " stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status streamMonitor ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 1 esac exit $? 
- В скрипте необходимо правильно задать переменную PROCPATH — путь до каталога с зондом. 
- В скрипте необходимо выбрать, хотите ли вы сохранять лог процесса. Лог не будет сохраняться: - daemon --check=streamMonitor $PROCPATH/streamMonitor >/dev/null 2>&1 & #daemon --check=streamMonitor $PROCPATH/streamMonitor >$PROCPATH/proclog.log 2>&1 - Лог будет сохраняться в файл proclog.log в папке с зондом: - #daemon --check=streamMonitor $PROCPATH/streamMonitor >/dev/null 2>&1 & daemon --check=streamMonitor $PROCPATH/streamMonitor >$PROCPATH/proclog.log 2>&1 
- Сохраните изменения в файле boro-client. 
- Необходимо назначить права на исполнение для скрипта (необходимы привилегии суперпользователя): - chmod 755 /etc/rc.d/init.d/boro-client
- Добавляем скрипт в систему запуска: - chkconfig --add boro-client
- Включаем автостарт сервиса: - chkconfig boro-client on
- После перезагрузки анализатор будет автоматически запущен как сервис. Проверить статус сервиса, запустить и остановить его “вручную” можно следующими командами, находясь в директории - /etc/rc.d/init.d:- ./boro-client status ./boro-client start ./boro-client stop 
- Список установленных сервисов в системе и их статус можно проверить командой: - chkconfig --list.
- Автозапуск сервиса можно отключить командой: - chkconfig boro-client off.