#!/bin/bash
|
|
|
|
if [ -f /etc/default/kazoo ]; then
|
|
. /etc/default/kazoo
|
|
fi
|
|
|
|
RETVAL=0
|
|
NAME=kazoo-applications
|
|
USER=${KAZOO_USER:-kazoo}
|
|
BIN_FILE=${BIN_FILE:-/opt/kazoo/bin/kazoo}
|
|
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}"
|
|
|
|
start() {
|
|
cd ${HOME}
|
|
if su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1; then
|
|
RETVAL=1
|
|
return
|
|
fi
|
|
|
|
mkdir -p /tmp/erl_pipes/${NAME}
|
|
chown -R ${USER} /tmp/erl_pipes/${NAME}
|
|
mkdir -p /var/log/kazoo
|
|
chown -R ${USER} /var/log/kazoo
|
|
chown -R ${USER} /opt/kazoo /opt/kazoo/.*
|
|
|
|
cd ${HOME}
|
|
export CODE_LOADING_MODE=interactive
|
|
if [ "$(whoami)" == "${USER}" ]; then
|
|
exec ${BIN_FILE} $@
|
|
else
|
|
exec su -s /bin/bash -c "${BIN_FILE} $@" ${USER}
|
|
fi
|
|
|
|
WAIT_TIME=0
|
|
until su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1 || [ ${WAIT_TIME} -eq 4 ]; do
|
|
sleep $(( WAIT_TIME++ ))
|
|
done
|
|
|
|
if ! su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1; then
|
|
RETVAL=1
|
|
fi
|
|
}
|
|
|
|
stop() {
|
|
cd ${HOME}
|
|
|
|
su -s /bin/bash -c "${BIN_FILE} stop" ${USER}
|
|
|
|
if su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1; then
|
|
RETVAL=1
|
|
fi
|
|
}
|
|
|
|
restart() {
|
|
stop
|
|
start
|
|
}
|
|
|
|
status() {
|
|
cd ${HOME}
|
|
|
|
su -s /bin/bash -c "${BIN_FILE} eval 'kz_nodes:status().'" ${USER} | sed \$d
|
|
|
|
if [ $? != 0 ]; then
|
|
(>&2 echo "${NAME} is not running!")
|
|
RETVAL=1
|
|
fi
|
|
}
|
|
|
|
connect() {
|
|
cd ${HOME}
|
|
|
|
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
|
|
export COOKIE_ARG="-setcookie ${COOKIE}"
|
|
|
|
su -s /bin/bash -c "${BIN_FILE} remote_console" ${USER}
|
|
|
|
if [ $? != 0 ]; then
|
|
(>&2 echo "${NAME} is not running!")
|
|
RETVAL=1
|
|
fi
|
|
}
|
|
|
|
attach() {
|
|
cd ${HOME}
|
|
su -s /bin/bash -c "${BIN_FILE} attach" ${USER}
|
|
|
|
if [ $? != 0 ]; then
|
|
(>&2 echo "${NAME} is not running!")
|
|
RETVAL=1
|
|
fi
|
|
}
|
|
|
|
ping() {
|
|
cd ${HOME}
|
|
|
|
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
|
|
export COOKIE_ARG="-setcookie ${COOKIE}"
|
|
|
|
su -s /bin/bash -c "${BIN_FILE} ping" ${USER}
|
|
|
|
if [ $? != 0 ]; then
|
|
(>&2 echo "${NAME} is not running!")
|
|
RETVAL=1
|
|
fi
|
|
}
|
|
|
|
pid() {
|
|
cd ${HOME}
|
|
|
|
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
|
|
export COOKIE_ARG="-setcookie ${COOKIE}"
|
|
|
|
su -s /bin/bash -c "${BIN_FILE} pid" ${USER}
|
|
|
|
if [ $? != 0 ]; then
|
|
(>&2 echo "${NAME} is not running!")
|
|
RETVAL=1
|
|
fi
|
|
}
|
|
|
|
foreground() {
|
|
cd ${HOME}
|
|
|
|
export CODE_LOADING_MODE=interactive
|
|
su -s /bin/bash -c "${BIN_FILE} foreground" ${USER}
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
start "start"
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
status)
|
|
status
|
|
;;
|
|
restart)
|
|
restart
|
|
;;
|
|
connect)
|
|
connect
|
|
;;
|
|
attach)
|
|
attach
|
|
;;
|
|
ping)
|
|
ping
|
|
;;
|
|
pid)
|
|
pid
|
|
;;
|
|
foreground)
|
|
foreground
|
|
;;
|
|
*)
|
|
echo "Usage: $0 (start|stop|restart|status|connect|attach|ping|pid|foreground)"
|
|
RETVAL=1
|
|
esac
|
|
|
|
exit ${RETVAL}
|