#!/bin/bash if [ -f /etc/default/kazoo ]; then . /etc/default/kazoo fi RETVAL=0 NAME=kazoo-ecallmgr USER=${KAZOO_USER:-kazoo} BIN_FILE=${KAZOO_BIN:-/opt/kazoo/bin/kazoo} PID_FILE=${KAZOO_PID:-/var/run/kazoo/${NAME}.pid} export HOME=${KAZOO_ROOT:-/opt/kazoo} export VMARGS_PATH=${KAZOO_VMARGS:-/etc/kazoo/core/vm.args} if [ -f /etc/sysconfig/kazoo ]; then . /etc/sysconfig/kazoo fi if [ "${NAME}" == "kazoo-applications" ]; then NAME="kazoo_apps" else NAME=${NAME#*-} fi export NAME_ARG="-name ${NAME}" prepare() { chown -R ${USER} /opt/kazoo /opt/kazoo/.* mkdir -p /tmp/erl_pipes/${NAME} chown -R ${USER} /tmp/erl_pipes/${NAME} mkdir -p /var/log/kazoo chown -R ${USER} /var/log/kazoo mkdir -p /var/run/kazoo chown -R ${USER} /var/run/kazoo if [ -e ${PID_FILE} ]; then rm -rf ${PID_FILE} fi } start() { cd ${HOME} if sudo -E -u ${USER} ${BIN_FILE} pid > /dev/null 2>&1; then echo "Kazoo ${NAME} is already running!" RETVAL=1 return fi export CODE_LOADING_MODE=interactive set -- ${BIN_FILE} "$@" if [ "$(whoami)" == "${USER}" ]; then exec "$@" else exec sudo -E -u ${USER} "$@" fi RETVAL=$? if [ ${RETVAL} -ne 0 ]; then echo "Failed to start Kazoo ${NAME}!" RETVAL=1 fi } stop() { cd ${HOME} set_cookie_arg sudo -E -u ${USER} ${BIN_FILE} stop if sudo -E -u ${USER} ${BIN_FILE} pid > /dev/null 2>&1; then echo "Failed to stop Kazoo ${NAME}!" RETVAL=1 fi } restart() { stop start } status() { cd ${HOME} set_cookie_arg /usr/sbin/sup -n ${NAME} kz_nodes status RETVAL=$? } connect() { cd ${HOME} set_cookie_arg sudo -E -u ${USER} ${BIN_FILE} remote_console RETVAL=$? } attach() { cd ${HOME} set_cookie_arg echo "WARNING: You are now directly attached to the running ${NAME} Erlang node." echo " It is safer to use: $0 connect" sudo -E -u ${USER} ${BIN_FILE} attach RETVAL=$? } ping() { cd ${HOME} set_cookie_arg sudo -E -u ${USER} ${BIN_FILE} ping RETVAL=$? } pid() { cd ${HOME} set_cookie_arg sudo -E -u ${USER} ${BIN_FILE} pid RETVAL=$? } set_cookie_arg() { COOKIE=`/usr/sbin/sup -n ${NAME} erlang get_cookie | sed "s|'||g"` export COOKIE_ARG="-setcookie ${COOKIE}" } case "$1" in prepare) prepare ;; background) start "start" ;; start) start "foreground" ;; stop) stop ;; restart) restart ;; status) status ;; connect) connect ;; attach) attach ;; ping) ping ;; pid) pid ;; *) echo "Usage: $0 (prepare|start|background|stop|restart|status|connect|attach|ping|pid)" RETVAL=1 esac exit ${RETVAL}