Режим сервиса операционной системы

SberMobile Server можно запускать в режиме сервиса операционной системы. Сервис работает независимо от авторизованных пользователей и может быть запущен, даже если нет ни одного авторизованного пользователя. Сервис не зависит от того, открыта ли консоль, и не может самостоятельно открывать окна. Режим сервиса и его поведение зависит от используемой ОС.

Сервис SberMobile Server регистрируется инсталлятором. Его конфигурация для авто-загрузки задается во время загрузки операционной системы.

Реализция режима сервиса зависит от операционной системы:

  • Для Microsoft Windows режим сервиса представлен сервисом Windows

  • Для Linux режим сервиса представлен фоновым (daemon) процессом

Microsoft windows

Установленным сервисом можно управлять через Start > Control Panel > Administration > Services.

Установка и деинсталляция сервиса

Сервис можно также установить из командной строки, передав /install выполняемому сервису (thalamus_server_service.exe). Чтобы избежать автоматическую загрузку сервиса при перезагрузке компьютера, следует передать аргумент /install-demand.

В качестве второго параметра после параметра /install можно опционально передать имя сервиса. Таким способом можно присвоить сервису новое имя вместо того, что было дано по умолчанию.

Деинсталляцию сервиса можно выполнить, передав выполняемому сервису параметр /uninstall.

Для всех переключателей командной строки также указывают тире в виде префикса, а не косую черту (т.е., -uninstall) или двойное тире (т.е., --uninstall).

Запуск и остановка сервиса из командной строки

Для запуска и остановки сервиса доступны элементы выбора /start и /stop. Кроме того, аргумент /status показывает, запущен ли уже сервис. Код выхода для команды статуса, когда сервис запущен,  - 0, когда сервис не запущен - 3, и 1 - когда состояние статуса невозможно определить (например, когда сервис не установлен на Windows).

Автоматический перезапуск сервиса

Сервис Windows будет автоматически перезапущен при выходе с кодом выхода, отличным от нуля, или в случае сбоя. По сути это означает, что сервис всегда будет доступен до явной остановки через любой пользовательский интерфейс SberMobile Server или через контрольную панель сервиса Windows.

Linux/unix

Разные версии Linux используют разные подходы для сервисов автозапуска и автовореспауна (демонов), так что инсталлятор SberMobile Server делает все возможное для конфигурирования поведения любого автозапуска и автоматического перезапуска по умолчанию. Вот как это технически организовано:

SberMobile Server инсталляция Linux содержит несколько скриптов, которые можно использовать для автозапуска и автоматического перезапуска сервера:

  • скрипт sbermobile_iiot_server запускает сервер и ждет до его остановки. Он возвращает код выхода SberMobile Server, который соответствует 0, если был запрос на остановку сервера, и 1, если был запрос на перезапуск сервера. Другие ненулевые коды могут быть возвращены в случае остановки сервера по причине критической ошибки.

  • скрипт thalamus_server_service запускает сервер как демон. Доступны аргументы start, stop, restart или status для запуска/остановки/перезапуска сервера или, соответственно, для отчета о его статусе.

Автозапуск и автореспаун для систем с демоном инициализации upstart

Для автозапуска и автореспауна сервера на системах, использующих демон инициализации Upstart, инсталлятор SberMobile Server копирует файл конфигурации thalamus_server.conf  в директорию /etc/init.

Для запуска сервера впервые, выполните команду initctl start sbermobile_iiot_server.

Автозапуск и автореспаун для систем с демоном инициализации systemd  

Для автозапуска и автореспауна сервера на системах, использующих демон инициализации systemd, инсталлятор SberMobile Server  копирует файл конфигурации thalamus_server.service  в директорию etcsystemdsystem.

Чтобы активировать автозапуск и автореспаун сервиса, выполните команду systemctl enable thalamus_server.service.

Для запуска сервера впервые, выполните команду systemctl restart thalamus_server.service.

Обратите внимание, что инсталлятор  SberMobile Server  не активирует автоматический автозапуск и автореспаун на основе сервиса systemd. Для перезагрузки демона systemctl выполните команду systemctl daemon-reload

Для проверки работоспособности сервиса выполните команду systemctl status thalamus_server_service.service -l.

Автозапуск без автореспауна

В очень редких случая может понадобиться активировать автозапуск SberMobile Server при запуске ОС, но без перезапуска, если перезапуск запрашивается через пользовательский интерфейс сервера.

Для активации автозапуска демона SberMobile Server  при запуске ОС, но без перезапуска даже при соответствующем запросе через пользовательский интерфейс, используйте скрипт thalamus_server_service:

  • Создайте символьную ссылку на него в директории инициализации сервисов (/etc/init.d или /etc/rc.d/init.d), или

  • Выполните команду update-rc.d thalamus_server_service defaults(для Ubuntu и схожих версий Linux), или

  • Выполните команды chkconfig --add thalamus_server_service и chkconfig thalamus_server_service on (для RedHat и LSB-совместимых версий Linux)