Browse Source

clean up scripts and resolve permissions errors in centos 7

4.0
bitbashing 10 years ago
parent
commit
eb9c9fd0b2
13 changed files with 386 additions and 295 deletions
  1. +1
    -1
      haproxy/haproxy.cfg
  2. +50
    -69
      system/sbin/kazoo-applications
  3. +62
    -47
      system/sbin/kazoo-bigcouch
  4. +50
    -69
      system/sbin/kazoo-ecallmgr
  5. +55
    -13
      system/sbin/kazoo-freeswitch
  6. +58
    -48
      system/sbin/kazoo-haproxy
  7. +53
    -35
      system/sbin/kazoo-kamailio
  8. +25
    -7
      system/sbin/kazoo-rabbitmq
  9. +6
    -1
      system/systemd/kazoo-bigcouch.service
  10. +7
    -2
      system/systemd/kazoo-freeswitch.service
  11. +8
    -3
      system/systemd/kazoo-haproxy.service
  12. +6
    -0
      system/systemd/kazoo-kamailio.service
  13. +5
    -0
      system/systemd/kazoo-rabbitmq.service

+ 1
- 1
haproxy/haproxy.cfg View File

@ -3,7 +3,7 @@ global
log 127.0.0.1 local1 notice
maxconn 4096
user haproxy
group haproxy
group daemon
stats socket /tmp/haproxy.sock mode 777
defaults


+ 50
- 69
system/sbin/kazoo-applications View File

@ -23,33 +23,34 @@ 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
prepare() {
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/.*
}
start() {
cd ${HOME}
if sudo -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 ${BIN_FILE} $@
exec "$@"
else
exec su -s /bin/bash -c "${BIN_FILE} $@" ${USER}
exec sudo -u ${USER} "$@"
fi
RETVAL=$?
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
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start Kazoo ${NAME}!"
RETVAL=1
fi
}
@ -57,9 +58,10 @@ start() {
stop() {
cd ${HOME}
su -s /bin/bash -c "${BIN_FILE} stop" ${USER}
sudo -u ${USER} ${BIN_FILE} stop
if su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1; then
if sudo -u ${USER} ${BIN_FILE} pid > /dev/null 2>&1; then
echo "Failed to stop Kazoo ${NAME}!"
RETVAL=1
fi
}
@ -72,89 +74,71 @@ restart() {
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
sudo -u ${USER} ${BIN_FILE} eval 'kz_nodes:status().' | sed \$d
RETVAL=$?
}
connect() {
cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
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
sudo -u ${USER} ${BIN_FILE} remote_console
RETVAL=$?
}
attach() {
cd ${HOME}
su -s /bin/bash -c "${BIN_FILE} attach" ${USER}
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
echo "WARNING: You are now directly attached to the running ${NAME} Erlang node."
echo " It is safer to use: $0 connect"
sudo -u ${USER} ${BIN_FILE} attach
RETVAL=$?
}
ping() {
cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
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
sudo -u ${USER} ${BIN_FILE} ping
RETVAL=$?
}
pid() {
cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
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}
sudo -u ${USER} ${BIN_FILE} pid
RETVAL=$?
}
case "$1" in
prepare)
prpeare
;;
start)
start "start"
;;
;;
foreground)
start "foreground"
;;
stop)
stop
;;
status)
status
;;
;;
restart)
restart
;;
;;
status)
status
;;
connect)
connect
;;
;;
attach)
attach
;;
@ -164,12 +148,9 @@ case "$1" in
pid)
pid
;;
foreground)
foreground
;;
*)
echo "Usage: $0 (start|stop|restart|status|connect|attach|ping|pid|foreground)"
echo "Usage: $0 (prpeare|start|foreground|stop|restart|status|connect|attach|ping|pid)"
RETVAL=1
esac
exit ${RETVAL}
exit ${RETVAL}

+ 62
- 47
system/sbin/kazoo-bigcouch View File

@ -5,7 +5,7 @@ if [ -f /etc/default/bigcouch ]; then
fi
if [ -f /etc/sysconfig/bigcouch ]; then
. /etc/sysconfig/bigcouch
. /etc/sysconfig/bigcouch
fi
RETVAL=0
@ -13,69 +13,84 @@ USER=${BIGCOUCH_USER:-bigcouch}
BIN_FILE=${BIGCOUCH_BIN:-/opt/bigcouch/bin/bigcouch}
export HOME=${BIGCOUCH_HOME:-/srv}
[ -f ${BIN_FILE} ] || exit 1
# Detect core count
CORES=`grep -E "^processor" /proc/cpuinfo |wc -l`
if [ "${CORES}" = "1" ]; then
BEAM=beam
BEAM=beam
else
BEAM=beam.smp
BEAM=beam.smp
fi
prepare() {
mkdir -p ${HOME}
chown -R ${USER} ${HOME}
mkdir -p /var/log/bigcouch
chown -R ${USER} /var/log/bigcouch
}
start() {
mkdir -p ${HOME}
chown -R ${USER} ${HOME}
mkdir -p /var/log/bigcouch
chown -R ${USER} /var/log/bigcouch
cd ${HOME}
cd ${HOME}
if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE}
else
exec su -s /bin/bash -c "${BIN_FILE}" ${USER}
fi
RETVAL=$?
set -- ${BIN_FILE} "$@"
if [ "$(whoami)" == "${USER}" ]; then
exec "$@"
else
exec sudo -u ${USER} "$@"
fi
RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start BigCouch!"
RETVAL=1
fi
}
stop() {
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
kill $i
RETVAL=$?
fi
done
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
kill $i
RETVAL=$?
fi
done
}
restart() {
stop
start
}
status() {
RETVAL=1
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
echo "bigcouch (pid $i) is running..."
if which curl &>/dev/null; then
curl localhost:5984/_membership
fi
RETVAL=0
fi
done
if [ ${RETVAL} -eq 1 ]; then
echo "bigcouch is not running!"
fi
RETVAL=1
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
echo "BigCouch (pid $i) is running..."
if which curl &>/dev/null; then
curl localhost:5984/_membership
fi
RETVAL=0
fi
done
if [ ${RETVAL} -eq 1 ]; then
echo "BigCouch is not running!"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
echo $"Usage: $0 (start|stop|status)"
RETVAL=1
prepare)
prpeare
;;
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
echo $"Usage: $0 (prpeare|start|stop|restart|status)"
RETVAL=1
esac
exit ${RETVAL}


+ 50
- 69
system/sbin/kazoo-ecallmgr View File

@ -23,33 +23,34 @@ 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
prepare() {
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/.*
}
start() {
cd ${HOME}
if sudo -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 ${BIN_FILE} $@
exec "$@"
else
exec su -s /bin/bash -c "${BIN_FILE} $@" ${USER}
exec sudo -u ${USER} "$@"
fi
RETVAL=$?
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
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start Kazoo ${NAME}!"
RETVAL=1
fi
}
@ -57,9 +58,10 @@ start() {
stop() {
cd ${HOME}
su -s /bin/bash -c "${BIN_FILE} stop" ${USER}
sudo -u ${USER} ${BIN_FILE} stop
if su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1; then
if sudo -u ${USER} ${BIN_FILE} pid > /dev/null 2>&1; then
echo "Failed to stop Kazoo ${NAME}!"
RETVAL=1
fi
}
@ -72,89 +74,71 @@ restart() {
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
sudo -u ${USER} ${BIN_FILE} eval 'kz_nodes:status().' | sed \$d
RETVAL=$?
}
connect() {
cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
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
sudo -u ${USER} ${BIN_FILE} remote_console
RETVAL=$?
}
attach() {
cd ${HOME}
su -s /bin/bash -c "${BIN_FILE} attach" ${USER}
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
echo "WARNING: You are now directly attached to the running ${NAME} Erlang node."
echo " It is safer to use: $0 connect"
sudo -u ${USER} ${BIN_FILE} attach
RETVAL=$?
}
ping() {
cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
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
sudo -u ${USER} ${BIN_FILE} ping
RETVAL=$?
}
pid() {
cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
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}
sudo -u ${USER} ${BIN_FILE} pid
RETVAL=$?
}
case "$1" in
prepare)
prpeare
;;
start)
start "start"
;;
;;
foreground)
start "foreground"
;;
stop)
stop
;;
status)
status
;;
;;
restart)
restart
;;
;;
status)
status
;;
connect)
connect
;;
;;
attach)
attach
;;
@ -164,12 +148,9 @@ case "$1" in
pid)
pid
;;
foreground)
foreground
;;
*)
echo "Usage: $0 (start|stop|restart|status|connect|attach|ping|pid|foreground)"
echo "Usage: $0 (prpeare|start|foreground|stop|restart|status|connect|attach|ping|pid)"
RETVAL=1
esac
exit ${RETVAL}
exit ${RETVAL}

+ 55
- 13
system/sbin/kazoo-freeswitch View File

@ -1,7 +1,7 @@
#!/bin/bash
if [ -f /etc/default/freeswitch ]; then
. /etc/default/freeswitch
. /etc/default/freeswitch
fi
if [ -f /etc/sysconfig/freeswitch ]; then
@ -18,21 +18,38 @@ if [ -z "${FREESWITCH_ARGS}" ]; then
FREESWITCH_ARGS="-nonat -conf ${CFG_FILE} -db /var/lib/kazoo-freeswitch/db -log /var/log/freeswitch -cache /var/lib/kazoo-freeswitch/cache -sounds /var/lib/kazoo-freeswitch/sounds -storage /var/lib/kazoo-freeswitch/storage"
fi
start() {
mkdir ${HOME}
chown -R ${USER} ${HOME}
prepare() {
mkdir ${HOME}
chown -R ${USER} ${HOME}
mkdir -p /var/log/freeswitch
chown -R ${USER} /var/log/freeswitch
mkdir -p /var/lib/kazoo-freeswitch/{db,cache,sounds,storage}
chown -R ${USER} /var/lib/kazoo-freeswitch
}
start() {
cd ${HOME}
if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE} ${FREESWITCH_ARGS} ${FREESWITCH_PARAMS} $@
if fs_cli -x 'status' > /dev/null 2>&1; then
echo "FreeSWITCH is already running!"
RETVAL=1
return
fi
/usr/bin/epmd -daemon
set -- ${BIN_FILE} ${FREESWITCH_ARGS} ${FREESWITCH_PARAMS} "$@"
if [ "$(whoami)" == "${USER}" ]; then
exec "$@"
else
exec su -s /bin/bash -c "exec ${BIN_FILE} ${FREESWITCH_ARGS} ${FREESWITCH_PARAMS} $@" ${USER}
exec sudo -u ${USER} "$@"
fi
RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start FreeSWITCH!"
RETVAL=1
fi
}
stop() {
@ -43,19 +60,34 @@ stop() {
}
status() {
fs_cli -x 'status'
fs_cli -x 'erlang status'
fs_cli -x 'status' && fs_cli -x 'erlang status'
RETVAL=$?
}
restart() {
stop
start
}
pause() {
fs_cli -x 'fsctl pause'
}
resume() {
fs_cli -x 'fsctl resume'
}
case "$1" in
prepare)
prepare
;;
start)
shift
start "-ncwait $@"
start "-ncwait" $@
;;
foreground)
shift
start "$@"
start $@
;;
stop)
stop
@ -63,9 +95,19 @@ case "$1" in
status)
status
;;
restart)
restart
;;
pause)
pause
;;
resume)
resume
;;
*)
echo "Usage: freeswitch {start|stop|status}"
echo "Usage: freeswitch {prepare|start|foreground|stop|restart|status|pause|resume}"
RETVAL=1
;;
esac
exit ${RETVAL}
exit ${RETVAL}

+ 58
- 48
system/sbin/kazoo-haproxy View File

@ -15,37 +15,41 @@ PID_FILE=${HAPROXY_PID:-/var/run/haproxy/kazoo-haproxy.pid}
BIN_FILE=${HAPROXY_BIN:-/usr/sbin/haproxy}
export HOME=${HAPROXY_HOME:-/var/lib/haproxy}
check() {
/usr/sbin/haproxy -c -V -f ${CFG_FILE} ${OPTIONS}
prepare() {
mkdir -p /var/run/haproxy
chown -R ${USER} /var/run/haproxy
mkdir -p /var/log/haproxy
chown -R ${USER} /var/log/haproxy
touch ${PID_FILE}
chown ${USER} ${PID_FILE}
}
start() {
/usr/sbin/haproxy -c -q -f ${CFG_FILE} ${OPTIONS}
if [ $? -ne 0 ]; then
echo "Errors in configuration file, check with haproxy check."
RETVAL=1
cd ${HOME}
check_config
if [ ${RETVAL} -ne 0 ]; then
return
fi
if echo "show stat" | nc -U /tmp/haproxy.sock > /dev/null 2>&1; then
echo "HAProxy is already running!"
RETVAL=1
return
fi
mkdir -p /var/run/haproxy
chown -R ${USER} /var/run/haproxy
mkdir -p /var/log/haproxy
chown -R ${USER} /var/log/haproxy
touch ${PID_FILE}
chown ${USER} ${PID_FILE}
cd ${HOME}
set -- ${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} "$@"
if [ "$(whoami)" == "${USER}" ]; then
exec "${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} $@"
exec "$@"
else
exec su -s /bin/bash -c "${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} $@" ${USER}
exec sudo -u ${USER} "$@"
fi
RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start HAProxy!"
RETVAL=1
fi
}
stop() {
@ -54,37 +58,23 @@ stop() {
}
restart() {
/usr/sbin/haproxy -c -q -f ${CFG_FILE} ${OPTIONS}
if [ $? -ne 0 ]; then
echo "Errors in configuration file, check with haproxy check."
RETVAL=1
check_config
if [ ${RETVAL} -ne 0 ]; then
return
fi
stop
start
}
reload() {
/usr/sbin/haproxy -c -q -f ${CFG_FILE} ${OPTIONS}
if [ $? -ne 0 ]; then
echo "Errors in configuration file, check with haproxy check."
RETVAL=1
return
fi
${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} -sf $(cat ${PID_FILE}) $@
retval=$?
echo
return $retval
}
status() {
local STATS="pxname svname qcur qmax scur smax slim stot bin bout dreq dresp ereq econ eresp wretr wredis status weight act bck chkfail chdown lastchg downtime qlimit pid iid sid throttle lbtot tracked type rate rate_lim rate_max check_status check_code check_duration hrsp_1xx hrsp_2xx hrsp_3xx hrsp_4xx hrsp_5xx hrsp_other hanafail req_rate req_rate_max req_tot cli_abrt srv_abrt"
local TABLE_HEADER="Host|25 Backend|15 Status Active Rate 1xx 2xx 3xx 4xx 5xx Ping"
local TABLE_VARS="svname|25 pxname|15 status scur req_rate hrsp_1xx hrsp_2xx hrsp_3xx hrsp_4xx hrsp_5xx check_duration"
if ! echo "show stat" | nc -U /tmp/haproxy.sock > /dev/null 2>&1; then
echo "Unable to connect to haproxy, ensure it is running!"
echo "Unable to connect to HAProxy, ensure it is running!"
RETVAL=1
return 1
return
fi
echo -n "|"
for HEADER in $TABLE_HEADER; do
@ -131,35 +121,55 @@ status() {
done
}
restart() {
stop
start
reload() {
check_config
if [ ${RETVAL} -ne 0 ]; then
return
fi
${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} -sf $(cat ${PID_FILE}) $@
RETVAL=$?
}
check_config() {
/usr/sbin/haproxy -c -V -f ${CFG_FILE} ${OPTIONS}
RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "ERROR: Invalid/incorrect configuration file!"
fi
}
case "$1" in
prepare)
prepare
;;
start)
shift
start "-D $@"
;;
stop)
stop
;;
restart|reload)
restart
;;
foreground)
shift
start "$@"
;;
check)
check
stop)
stop
;;
restart)
restart
;;
status)
status
;;
reload)
reload
;;
check)
check_config
;;
*)
echo $"Usage: $0 {start|stop|restart|foreground|reload|check|status}"
echo $"Usage: $0 {prepare|start|foreground|stop|restart|status|reload|check}"
RETVAL=1
esac
exit ${RETVAL}
exit ${RETVAL}

+ 53
- 35
system/sbin/kazoo-kamailio View File

@ -13,7 +13,7 @@ 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
PID_FILE=${KAMAILIO_PID:-/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}"
@ -26,43 +26,31 @@ 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
prepare() {
mkdir -p /var/run/kazoo-kamailio
chown -R ${USER} /var/run/kazoo-kamailio
mkdir -p /var/run/kamailio
chown -R ${USER} /var/run/kamailio
}
start() {
cd ${HOME}
check_config
check_fork
set -- ${BIN_FILE} -f ${CFG_FILE} -P ${PID_FILE} -m ${SHM_MEMORY} -M ${PKG_MEMORY} -u ${USER} -g ${GROUP} ${EXTRA_OPTIONS} "$@"
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} $@
exec "$@"
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}
exec sudo -u ${USER} "$@"
fi
RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start BigCouch!"
RETVAL=1
fi
}
stop() {
@ -70,35 +58,65 @@ stop() {
RETVAL=$?
}
restart() {
stop
start
}
status() {
kamctl fifo ds_list
RETVAL=$?
}
# 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 "WARNING: fork=no specified in config file"
exit 1
fi
}
check_config ()
{
local ERRORS=$($BIN_FILE -c -f ${CFG_FILE} 2>&1 > /dev/null)
RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "ERROR: Invalid configuration file ${CFG_FILE}!"
echo -e "\n${ERRORS}\n"
else
echo "No errors found in ${CFG_FILE}"
fi
}
case "$1" in
prepare)
prepare
;;
start)
shift
start $@
;;
foreground)
shift
start "-DD -E"
start -DD -E $@
;;
stop)
stop
;;
check)
check_kamailio_config
restart)
restart
;;
status)
status
;;
restart)
stop
start
check)
check_config
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
echo $"Usage: $0 {prepare|start|foreground|stop|restart|status|check}"
RETVAL=1
esac


+ 25
- 7
system/sbin/kazoo-rabbitmq View File

@ -22,22 +22,40 @@ export RABBITMQ_CONFIG_FILE=/etc/kazoo/rabbitmq/rabbitmq
export RABBITMQ_ENABLED_PLUGINS_FILE=/etc/kazoo/rabbitmq/enabled_plugins
export RABBITMQ_NODENAME=kazoo-rabbitmq
start() {
prepare() {
mkdir -p ${HOME}
chown -R ${USER} ${HOME}
mkdir -p /var/log/rabbitmq
chown -R ${USER} /var/log/rabbitmq
}
start() {
cd ${HOME}
if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE} $@
else
exec su -s /bin/bash -c "${BIN_FILE} $@" ${USER}
fi
if /usr/lib/rabbitmq/bin/rabbitmqctl status > /dev/null 2>&1; then
echo "RabbitMQ is already running!"
RETVAL=1
return
fi
set -- ${BIN_FILE} "$@"
if [ "$(whoami)" == "${USER}" ]; then
exec "$@"
else
exec sudo -u ${USER} "$@"
fi
RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start RabbitMQ!"
RETVAL=1
fi
}
case "$1" in
prepare)
prepare
;;
start)
shift
start "-detached $@"
@ -52,4 +70,4 @@ case "$1" in
;;
esac
exit ${RETVAL}
exit ${RETVAL}

+ 6
- 1
system/systemd/kazoo-bigcouch.service View File

@ -4,9 +4,14 @@ After=syslog.target network.target
[Service]
Type=forking
User=bigcouch
Group=daemon
WorkingDirectory=/srv
PermissionsStartOnly=true
ExecStartPre=/usr/sbin/kazoo-bigcouch prepare
ExecStart=/usr/sbin/kazoo-bigcouch start
ExecStop=/usr/sbin/kazoo-bigcouch stop
Restart=on-abort
[Install]
WantedBy=multi-user.target
WantedBy=multi-user.target

+ 7
- 2
system/systemd/kazoo-freeswitch.service View File

@ -4,12 +4,17 @@ After=syslog.target network.target
After=postgresql.service postgresql-9.3.service postgresql-9.4.service mysqld.service httpd.service
[Service]
User=freeswitch
Group=daemon
WorkingDirectory=/var/run/kazoo-freeswitch
PermissionsStartOnly=true
# RuntimeDirectory is not yet supported in CentOS 7. A workaround is to use /etc/tmpfiles.d/freeswitch.conf
#RuntimeDirectory=/run/freeswitch
#RuntimeDirectoryMode=0750
WorkingDirectory=/run/freeswitch
ExecStartPre=/usr/sbin/kazoo-freeswitch prepare
ExecStart=/usr/sbin/kazoo-freeswitch foreground -nc -nf
ExecReload=/usr/bin/kill -HUP $MAINPID
Restart=on-abort
[Install]
WantedBy=multi-user.target
WantedBy=multi-user.target

+ 8
- 3
system/systemd/kazoo-haproxy.service View File

@ -3,11 +3,16 @@ Description=HAProxy Load Balancer Configured for Kazoo
After=syslog.target network.target
[Service]
User=haproxy
Group=daemon
WorkingDirectory=/var/lib/haproxy
PermissionsStartOnly=true
PIDFile=/var/run/haproxy/kazoo-haproxy.pid
Environment=HAPROXY_BIN=/usr/sbin/haproxy-systemd-wrapper
Environment=HAPROXY_PID=/run/haproxy.pid
ExecStartPre=/usr/sbin/kazoo-haproxy prepare
ExecStart=/usr/sbin/kazoo-haproxy foreground
ExecReload=/bin/kill -USR2 $MAINPID
Restart=on-abort
[Install]
WantedBy=multi-user.target
WantedBy=multi-user.target

+ 6
- 0
system/systemd/kazoo-kamailio.service View File

@ -3,6 +3,12 @@ Description=Kamailio (OpenSER) - the Open Source SIP Server Configured for Kazoo
After=syslog.target network.target
[Service]
User=kamailio
Group=daemon
WorkingDirectory=/var/run/kamailio
PermissionsStartOnly=true
PIDFile=/var/run/kazoo-kamailio/kamailio.pid
ExecStartPre=/usr/sbin/kazoo-kamailio prepare
ExecStart=/usr/sbin/kazoo-kamailio foreground
ExecReload=/usr/bin/kill -HUP $MAINPID
Restart=on-abort


+ 5
- 0
system/systemd/kazoo-rabbitmq.service View File

@ -4,9 +4,14 @@ After=syslog.target network.target
[Service]
Type=notify
User=rabbitmq
Group=daemon
WorkingDirectory=/var/lib/rabbitmq
PermissionsStartOnly=true
ExecStartPre=/usr/sbin/kazoo-rabbitmq prepare
ExecStart=/usr/sbin/kazoo-rabbitmq start
ExecStop=/usr/sbin/kazoo-rabbitmq stop
Restart=on-abort
[Install]
WantedBy=multi-user.target

Loading…
Cancel
Save