| @ -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} | |||