Разные заметки

суббота, 1 июня 2019 г.

Kamailio автозапуск с помощью SystemD в CentOS7 при установке из исходников

При установке из исходников, необходимо настроить вручную автозапуск Kamailio, при старте и чтобы управлять службой с помощью systemd.

Для этого в пакете исходников есть файлы в каталоге /usr/src/kamailio/pkg/kamailio/centos/7/

Но в них попались ошибки.
Итак:

1. Копируем файлы

cp /usr/src/kamailio/pkg/kamailio/centos/7/kamailio.service /usr/lib/systemd/system/kamailio.service
cp /usr/src/kamailio/pkg/kamailio/centos/7/kamailio.sysconfig /etc/sysconfig/kamailio
cp /usr/src/kamailio/pkg/kamailio/centos/7/kamailio.tmpfiles /etc/tmpfiles.d/kamailio.conf



2. Приводим к рабочему виду


Файл /etc/tmpfiles.d/kamailio.conf - указывает системе при загрузке создать в области tmpfs, а точнее в каталоге /run каталог kamailio принадлежностью к пользователю-группе kamailio: kamailio.
Содержимое файла:

d /run/kamailio 0750 kamailio kamailio - -

В исходниках вместо "d" стояла "D",  каталог не создавался.


Файл /usr/lib/systemd/system/kamailio.service настраиваем так:

[Unit]
Description=Kamailio (OpenSER) - the Open Source SIP Server
Documentation=man:kamailio(8) https://www.kamailio.org/
Wants=network-online.target
After=network-online.target
After=mysqld.service           # добавлено
Requires=mysqld.service        # добавлено

[Service]
Type=forking
WorkingDirectory=/run/kamailio

# мои настройки расположения файлов и параметров

Environment='CFGFILE=/usr/local/etc/kamailio/kamailio.cfg'
Environment='SHM_MEMORY=2048'
Environment='PKG_MEMORY=256'
EnvironmentFile=/etc/sysconfig/kamailio
TimeoutSec=60

# PIDFile requires a full absolute path
PIDFile=/run/kamailio/kamailio.pid

# ExecStart requires a full absolute path
ExecStart=/usr/local/sbin/kamailio -f $CFGFILE -P /run/kamailio/kamailio.pid -m $SHM_MEMORY -M $PKG_MEMORY

# ExecStopPost
ExecStopPost=/usr/bin/rm -f /run/kamailio/kamailio.pid

Restart=on-failure

User=kamailio
Group=kamailio
; For each TCP or TLS endpoint connection is requred file descriptor
LimitNOFILE=99999


[Install]
WantedBy=multi-user.target


Редактируем строку ExecStart=/usr/local/sbin/kamailio - тут необходимо проверить путь к самому файлу, потому что изначально прописано /usr/sbin/kamailio



Файл /etc/sysconfig/kamailio тоже настраиваем под себя.

Я еще выставляю права на папки Kamailio:
chown -R kamailio:kamailio /usr/local/etc/kamailio
chown -R kamailio:kamailio /usr/local/lib64/kamailio


Все.