Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

В различных дистрибутивах Linux существуют разные схемы автоматического запуска служб при старте сервера.  Рассмотрим systemd и sysvinit.

systemd

В поставляемых приложениях биллинга в каталоге scripts присутствуют script присутствуют файлы .service для systemd. Отредактируйте их, поправив пути к приложениям, скопируйте в каталог /lib/systemd/system, затем выполните для каждого файла (приложения):

...

Блок кода
languageruby
title[root@localhost ~]#
[Unit]
Description=BGBilling Server
After=network.target, mysql.service, activemq.service
#After#Required=network.target, mysqld.service, activemq.service

[Service]
Type=forking
ExecStartPre=/opt/bgbilling/BGBillingServer/script/wait-for.sh 127.0.0.1:3306 -t 60
ExecStart=/opt/bgbilling/BGBillingServer/server.sh start
ExecStop=/opt/bgbilling/BGBillingServer/server.sh stop

[Install]
WantedBy=multi-user.target

Обратите внимание на строку "After=network.target , mysql.service , activemq.service". Если в системе есть такие сервисы и они стартуют, то systemctl ожидает их старта и только после этого запускает сервис bgbilling. В зависимости от дистрибутива, сервис mysql может называться по другому, например, mysqld.service или mariadb.service.

Строка "ExecStartPre=/opt/bgbilling/BGBillingServer/script/wait-for.sh 127.0.0.1:3306 -t 60" выполняется перед стартом сервиса bgbilling - данный скрипт ждет 60 секунд, пока не откроется порт 127.0.0.1:3306. Таким образом выполняется ожидание старта MySQL сервера, т.к. в некоторых дистрибутивах сервис mysql считается запущенным еще до того как был открыт его порт. Или MySQL может быть на другой машине - в этом случае нужно поменять адрес на правильный или закомментировать строку (символ #).

После того, как мы скопировали bgbilling.service в каталог /lib/systemd/system, мы можем поставить его в автозагрузку:

Блок кода
languageruby
title[root@localhost ~]#
 systemctl enable bgbilling

и запустить:

Блок кода
languageruby
title[root@localhost ~]#
 systemctl start bgbilling

sysvinit

Эта система самая старая и простая и поддерживается большинством дистрибутивов. Со всеми серверными приложениями биллинга в каталоге scriptsscript поставляются скрипты запуска с командами start и stop. Все поставляемые скрипты ориентированы на командный интерпретатор Bash, либо совместимый (проверена работа с Dash), ссылка на который должна располагаться в файле /bin/sh. В случае, если у вас используется другой интерпретатор, либо отсутствует ссылка - поправьте скрипты

Рассмотрим способ добавления службы bgbilling.

1) Cкопируйте скрипт bgcommonrc в /etc/init.d, установите права на выполнение.

Блок кода
languageruby
linenumbersfalse
chmod 755 /etc/init.d/bgcommonrc

2) Выполните команду runlevel, чтобы узнать уровень запуска.

Блок кода
languageruby
linenumbersfalse
[root@bill-2 init.d]# runlevel
N 3

23) Cкопируйте скрипт службы в /etc/init.d, установите права на выполнение.

Блок кода
languageruby
linenumbersfalse
chmod 755 /etc/init.d/bgbilling

34) Перейдите в папку /etc/rcN.d (N - требуемый уровень запуска), где выполните команду.

...

При установке каждого серверного приложения необходимо удалить Windows-скрипты и установить права исполнения для .sh-файлов:

...