Зонд как служба¶
Служба в 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
.