#!/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}
|