Linux

Установка всего серверного ПО производится под пользователем root.

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

systemd

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

[root@localhost ~]#
 systemctl enable <app>

Например, для приложения BGBillingServer файл bgbilling.service:

[root@localhost ~]#
[Unit]
Description=BGBilling Server
After=network.target mysql.service activemq.service
#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, мы можем поставить его в автозагрузку:

[root@localhost ~]#
 systemctl enable bgbilling

и запустить:

[root@localhost ~]#
 systemctl start bgbilling

sysvinit

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

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

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

chmod 755 /etc/init.d/bgcommonrc

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

[root@bill-2 init.d]# runlevel
N 3

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

chmod 755 /etc/init.d/bgbilling

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

ln -s /etc/init.d/bgbilling S99bgbilling

Для запуска/остановки службы используйте /etc/init.d/bgbilling start (stop). Префикс ссылки S99 задаёт порядок старта сервиса.

Стандартные действия при установке

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

rm -f *.bat && rm -f *.exe && rm -f *.ini && chmod 744 *.sh