| @ -0,0 +1,102 @@ | |||||
| #!/bin/bash | |||||
| if [ -f /etc/default/kamailio ]; then | |||||
| . /etc/default/kamailio | |||||
| fi | |||||
| if [ -f /etc/sysconfig/kamailio ]; then | |||||
| . /etc/sysconfig/kamailio | |||||
| fi | |||||
| RETVAL=0 | |||||
| USER=${KAMAILIO_USER:-kamailio} | |||||
| GROUP=${KAMAILIO_GROUP:-kamailio} | |||||
| BIN_FILE=${KAMAILIO_BIN:-/usr/sbin/kamailio} | |||||
| CFG_FILE=${KAMAILIO_CONFIG:-/etc/kazoo/kamailio/kamailio.cfg} | |||||
| PID_FILE=/var/run/kazoo-kamailio/kamailio.pid | |||||
| export HOME=${KAMAILIO_HOME:-/var/run/kamailio} | |||||
| OPTIONS="-P ${PID_FILE} -m ${SHM_MEMORY} -M ${PKG_MEMORY} -u ${USER} -g ${GROUP} ${EXTRA_OPTIONS}" | |||||
| SHM_MEMORY=$((`echo $SHM_MEMORY | sed -e 's/[^0-9]//g'`)) | |||||
| PKG_MEMORY=$((`echo $PKG_MEMORY | sed -e 's/[^0-9]//g'`)) | |||||
| [ $SHM_MEMORY -le 0 ] && SHM_MEMORY=64 | |||||
| [ $PKG_MEMORY -le 0 ] && PKG_MEMORY=8 | |||||
| if test "$DUMP_CORE" = "yes" ; then | |||||
| ulimit -c unlimited | |||||
| fi | |||||
| # Do not start kamailio if fork=no is set in the config file | |||||
| # otherwise the boot process will just stop | |||||
| check_fork () | |||||
| { | |||||
| if grep -q "^[[:space:]]*fork[[:space:]]*=[[:space:]]*no.*" $CFG_FILE; then | |||||
| echo "Not starting Kamailio: fork=no specified in config file" | |||||
| exit 1 | |||||
| fi | |||||
| } | |||||
| check_kamailio_config () | |||||
| { | |||||
| local ERRORS=$($BIN_FILE -c 2>&1 > /dev/null) | |||||
| RETVAL=$? | |||||
| if [ "${RETVAL}" != '0' ]; then | |||||
| echo "Not starting Kamailio: invalid configuration file!" | |||||
| echo -e "\n${ERRORS}\n" | |||||
| RETVAL=1 | |||||
| fi | |||||
| } | |||||
| start() { | |||||
| check_kamailio_config | |||||
| check_fork | |||||
| mkdir -p /var/run/kazoo-kamailio | |||||
| chown -R ${USER} /var/run/kazoo-kamailio | |||||
| mkdir -p /var/run/kamailio | |||||
| chown -R ${USER} /var/run/kamailio | |||||
| cd ${HOME} | |||||
| if [ "$(whoami)" == "${USER}" ]; then | |||||
| exec ${BIN_FILE} -f ${CFG_FILE} -P ${PID_FILE} -m ${SHM_MEMORY} -M ${PKG_MEMORY} -u ${USER} -g ${GROUP} ${EXTRA_OPTIONS} $@ | |||||
| else | |||||
| exec su -s /bin/bash -c "${BIN_FILE} -f ${CFG_FILE} -P ${PID_FILE} -m ${SHM_MEMORY} -M ${PKG_MEMORY} -u ${USER} -g ${GROUP} ${EXTRA_OPTIONS} $@" ${USER} | |||||
| fi | |||||
| RETVAL=$? | |||||
| } | |||||
| stop() { | |||||
| killproc ${BIN_FILE} | |||||
| RETVAL=$? | |||||
| } | |||||
| status() { | |||||
| kamctl fifo ds_list | |||||
| RETVAL=$? | |||||
| } | |||||
| case "$1" in | |||||
| start) | |||||
| shift | |||||
| start $@ | |||||
| ;; | |||||
| foreground) | |||||
| shift | |||||
| start "-DD -E" | |||||
| ;; | |||||
| stop) | |||||
| stop | |||||
| ;; | |||||
| status) | |||||
| status | |||||
| ;; | |||||
| restart) | |||||
| stop | |||||
| start | |||||
| ;; | |||||
| *) | |||||
| echo $"Usage: $0 {start|stop|restart|status}" | |||||
| RETVAL=1 | |||||
| esac | |||||
| exit ${RETVAL} | |||||