Установка всего серверного ПО производится под пользователем root.
...
В различных дистрибутивах Linux существуют разные схемы автоматического запуска служб при старте сервера. Со всеми серверными приложениями биллинга в каталоге scripts поставляются скрипты запуска с командами start и stop. Для простоты работа со службами везде описана применительно к системе sysvinit. Рассмотрим systemd и sysvinit.
systemd
В поставляемых приложениях биллинга в каталоге script присутствуют файлы .service для systemd. Отредактируйте их, поправив пути к приложениям, скопируйте в каталог /lib/systemd/system, затем выполните для каждого файла (приложения):
Блок кода |
---|
language | ruby |
---|
title | [root@localhost ~]# |
---|
|
systemctl enable <app> |
Например, для приложения BGBillingServer файл bgbilling.service:
Блок кода |
---|
language | ruby |
---|
title | [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, мы можем поставить его в автозагрузку:
Блок кода |
---|
language | ruby |
---|
title | [root@localhost ~]# |
---|
|
systemctl enable bgbilling |
и запустить:
Блок кода |
---|
language | ruby |
---|
title | [root@localhost ~]# |
---|
|
systemctl start bgbilling |
sysvinit
Эта система самая старая и простая и поддерживается большинством дистрибутивов. Со всеми серверными приложениями биллинга в каталоге script поставляются скрипты запуска с командами start и stop. Все поставляемые скрипты ориентированы на командный интерпретатор Bash, либо совместимый (проверена работа с Dash), ссылка на который должна располагаться в файле /bin/sh. В случае, если у вас используется другой интерпретатор, либо отсутствует ссылка - поправьте скрипты
Рассмотрим способ добавления службы bgbilling.
1) Cкопируйте скрипт bgcommonrc в /etc/init.d, установите права на выполнение.
Блок кода |
---|
language | ruby |
---|
linenumbers | false |
---|
|
chmod 755 /etc/init.d/bgcommonrc |
2) Выполните команду runlevel, чтобы узнать уровень запуска.
Блок кода |
---|
language | ruby |
---|
linenumbers | false |
---|
|
[root@bill-2 init.d]# runlevel
N 3 |
23) Cкопируйте скрипт службы в /etc/init.d, установите права на выполнение.
Блок кода |
---|
language | ruby |
---|
linenumbers | false |
---|
|
chmod 755 /etc/init.d/bgbilling |
34) Перейдите в папку /etc/rcN.d (N - требуемый уровень запуска), где выполните команду.
...
Для запуска/остановки службы используйте /etc/init.d/bgbilling start (stop). Префикс ссылки S99 задаёт порядок старта сервиса.
Стандартные действия при установке
Якорь |
---|
| prepare_for_linux |
---|
| prepare_for_linux |
---|
|
При установке каждого серверного приложения необходимо всегда выполнить несколько шагов.1) Установите необходимо удалить Windows-скрипты и установить права исполнения для .sh-файлов и удалите Windows скрипты.:
Блок кода |
---|
language | ruby |
---|
linenumbers | false |
---|
|
rm -f *.bat && rm -f *.exe && rm -f *.ini && chmod 744 *.sh |
2) Проверьте все *.sh файлы на наличие символов ^M и удалите их, если есть. Если в системе установлена утилита dos2unix, можно воспользоваться ей.
Блок кода |
---|
language | ruby |
---|
linenumbers | false |
---|
|
dos2unix *.sh |