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

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

Ключ

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

Для первого знакомства с системой Вы можете воспользоваться готовым образом виртуальной машины.

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

...

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

systemd

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

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

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

Блок кода
languageruby
title[root@localhost ~]#
[Unit]
Description=BGBilling Server
After=network.target,mysql.service,activemq.service
#After=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

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

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

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

...

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

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

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

...

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

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

Якорь
prepare_for_linux
prepare_for_linux

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

Блок кода
languageruby
linenumbersfalse
rm -f *.bat && rm -f *.exe && rm -f *.ini && chmod 744 *.sh

2) Проверьте все *.sh файлы на наличие символов ^M и удалите их, если есть. Если в системе установлена утилита dos2unix, можно воспользоваться ей.

Блок кода
languageruby
linenumbersfalse
dos2unix *.sh