Browse Source

new strategy for init vs systemd vs admin

4.0
k anderson 10 years ago
parent
commit
625a68f244
12 changed files with 680 additions and 380 deletions
  1. +47
    -81
      system/init.d/kazoo-bigcouch.redhat
  2. +59
    -78
      system/init.d/kazoo-freeswitch.redhat
  3. +53
    -85
      system/init.d/kazoo-haproxy.redhat
  4. +123
    -136
      system/init.d/kazoo-rabbitmq.redhat
  5. +78
    -0
      system/sbin/kazoo-bigcouch
  6. +67
    -0
      system/sbin/kazoo-freeswitch
  7. +143
    -0
      system/sbin/kazoo-haproxy
  8. +51
    -0
      system/sbin/kazoo-rabbitmq
  9. +14
    -0
      system/systemd/kazoo-bigcouch.service
  10. +16
    -0
      system/systemd/kazoo-freeswitch.service
  11. +15
    -0
      system/systemd/kazoo-haproxy.service
  12. +14
    -0
      system/systemd/kazoo-rabbitmq.service

+ 47
- 81
system/init.d/kazoo-bigcouch.redhat View File

@ -5,110 +5,76 @@
# chkconfig: 345 13 87
# description: BigCouch is a dynamo-style distributed database based on Apache CouchDB.
# processname: bigcouch
# pidfile: /var/run/bigcouch.pid
# pidfile: /var/run/kazoo-bigcouch.pid
#
# Source function library.
RETVAL=0
LOCK_FILE=${LOCK_FILE:-/var/lock/subsys/kazoo-bigcouch}
. /etc/init.d/functions
if [ -f /etc/sysconfig/bigcouch ]; then
. /etc/sysconfig/bigcouch
. /etc/sysconfig/bigcouch
fi
NAME="bigcouch"
LOCKFILE=${LOCKFILE-/var/lock/subsys/kazoo-bigcouch}
USER="bigcouch"
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
# Check that networking is up.
if [ "${NETWORKING}" = "no" ]; then
exit 0
exit 0
fi
[ -f /opt/bigcouch/bin/${NAME} ] || exit 0
# Detect core count
CORES=`grep -E "^processor" /proc/cpuinfo |wc -l`
if [ "$CORES" = "1" ]; then
BEAM=beam
else
BEAM=beam.smp
fi
[ -f /opt/bigcouch/bin/BigCouch ] || exit 0
start() {
RETVAL=1
echo -n $"Starting ${NAME}: "
export HOME=/srv
cd ${HOME}
chown ${USER} -R /var/log/bigcouch
chown ${USER} -R /srv
su ${USER} -s /bin/bash -c /opt/bigcouch/bin/${NAME}
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch ${LOCKFILE}
return $RETVAL
RETVAL=1
echo -n $"Starting BigCouch: "
/usr/sbin/kazoo-bigcouch start
RETVAL=$?
echo
[ ${RETVAL} -eq 0 ] && touch ${LOCK_FILE}
}
stop() {
RETVAL=1
echo -n $"Stopping ${NAME}: "
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
kill $i
RETVAL=$?
fi
done
if [ $RETVAL -eq 0 ]; then
rm -f ${lockfile} ${pidfile}
success
echo
return $RETVAL
else
failure
echo
return $RETVAL
fi
RETVAL=1
echo -n $"Stopping BigCouch: "
/usr/sbin/kazoo-bigcouch stop
RETVAL=$?
if [ ${RETVAL} -eq 0 ]; then
rm -f ${LOCK_FILE} ${pidfile}
success
else
failure
fi
echo
}
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..."
return 0;
fi
done
echo "bigcouch is stopped..."
return 1;
/usr/sbin/kazoo-bigcouch status
RETVAL=$?
}
restart() {
stop
start
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart|reload)
restart
;;
condrestart)
[ ! -e ${LOCKFILE} ] && restart
;;
*)
echo $"Usage: $0 (start|stop|restart|status)"
exit 1
start)
start
;;
stop)
stop
;;
status)
status
;;
restart|reload)
restart
;;
condrestart)
[ ! -e ${LOCK_FILE} ] && restart
;;
*)
echo $"Usage: $0 (start|stop|restart|status)"
RETVAL=1
esac
exit $?
exit $RETVAL

+ 59
- 78
system/init.d/kazoo-freeswitch.redhat View File

@ -1,8 +1,8 @@
#!/bin/bash
#
# /etc/rc.d/init.d/freeswitch
# /etc/rc.d/init.d/freeswitch
#
# The FreeSWITCH Open Source Voice Platform
# The FreeSWITCH Open Source Voice Platform
#
# chkconfig: 345 89 14
# description: Starts and stops the freeswitch server daemon
@ -11,101 +11,82 @@
# pidfile: /var/run/freeswitch/kazoo-freeswitch.pid
#
# Source function library.
. /etc/init.d/functions
PROG_NAME=freeswitch
PID_FILE=${PID_FILE-/var/run/freeswitch/kazoo/freeswitch.pid}
FS_USER=${FS_USER-freeswitch}
FS_FILE=${FS_FILE-/usr/bin/freeswitch}
FS_HOME=${FS_HOME-/var/run/kazoo-freeswitch}
LOCK_FILE=/var/lock/subsys/kazoo-freeswitch
FREESWITCH_ARGS="-ncwait -nonat -conf /etc/kazoo/freeswitch -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"
RETVAL=0
PID_FILE=${PID_FILE:-/var/run/freeswitch/kazoo/freeswitch.pid}
FS_USER=${FS_USER:-freeswitch}
LOCK_FILE=/var/lock/subsys/kazoo-freeswitch
. /etc/init.d/functions
# Source usr/localions file
if [ -f /etc/sysconfig/freeswitch ]; then
. /etc/sysconfig/freeswitch
fi
# <define any local shell functions used by the code that follows>
start() {
echo -n "Starting $PROG_NAME: "
if [ -e $LOCK_FILE ]; then
if [ -e $PID_FILE ] && [ -e /proc/`cat $PID_FILE` ]; then
echo
echo -n $"$PROG_NAME is already running.";
failure $"$PROG_NAME is already running.";
echo
return 1
fi
fi
mkdir -p /var/lib/kazoo-freeswitch/{db,cache,sounds,storage}
chown -R $FS_USER /var/lib/kazoo-freeswitch
mkdir -p /var/run/freeswitch
chown $FS_USER /var/run/freeswitch
mkdir -p /var/run/kazoo-freeswitch
chown $FS_USER /var/run/kazoo-freeswitch
mkdir -p /var/log/freeswitch
chown $FS_USER /var/log/freeswitch
cd $FS_HOME
daemon --user $FS_USER --pidfile $PID_FILE "$FS_FILE $FREESWITCH_ARGS $FREESWITCH_PARAMS >/dev/null 2>&1"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $LOCK_FILE;
echo -n "Starting FreeSWITCH: "
if [ -e $LOCK_FILE ]; then
if [ -e $PID_FILE ] && [ -e /proc/`cat $PID_FILE` ]; then
echo
echo -n $"FreeSWITCH is already running.";
failure $"FreeSWITCH is already running.";
echo
return 1
fi
fi
daemon --user $FS_USER --pidfile ${PID_FILE} "/usr/sbin/kazoo-freeswitch start >/dev/null 2>&1"
RETVAL=$?
echo
return $RETVAL
[ $RETVAL -eq 0 ] && touch $LOCK_FILE;
echo
return $RETVAL
}
stop() {
echo -n "Shutting down $PROG_NAME: "
if [ ! -e $LOCK_FILE ]; then
echo
echo -n $"cannot stop $PROG_NAME: $PROG_NAME is not running."
failure $"cannot stop $PROG_NAME: $PROG_NAME is not running."
echo
return 1;
fi
cd $FS_HOME
$FS_FILE -stop > /dev/null 2>&1
killproc $PROG_NAME
echo -n "Shutting down FreeSWITCH: "
if [ ! -e $LOCK_FILE ]; then
echo
echo -n $"cannot stop FreeSWITCH: FreeSWITCH is not running."
failure $"cannot stop FreeSWITCH: FreeSWITCH is not running."
echo
return 1;
fi
/usr/sbin/kazoo-freeswitch stop
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $LOCK_FILE;
return $RETVAL
return $RETVAL
}
rhstatus() {
status $PROG_NAME;
status FreeSWITCH;
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $PROG_NAME
RETVAL=$?
;;
restart)
stop
start
;;
reload)
# <cause the service configuration to be reread, either with
# kill -HUP or by restarting the daemons, in a manner similar
# to restart above>
;;
condrestart)
[ -f $PID_FILE ] && restart || :
start)
start
;;
stop)
stop
;;
status)
status FreeSWITCH
RETVAL=$?
;;
restart)
stop
start
;;
reload)
# <cause the service configuration to be reread, either with
# kill -HUP or by restarting the daemons, in a manner similar
# to restart above>
;;
condrestart)
[ -f $PID_FILE ] && restart || :
;;
*)
echo "Usage: $PROG_NAME {start|stop|status|reload|restart}"
exit 1
;;
*)
echo "Usage: FreeSWITCH {start|stop|status|reload|restart}"
exit 1
;;
esac
exit $RETVAL
exit ${RETVAL}

+ 53
- 85
system/init.d/kazoo-haproxy.redhat View File

@ -3,109 +3,77 @@
# haproxy
#
# chkconfig: - 85 15
# description: HAProxy is a free, very fast and reliable solution \
# offering high availability, load balancing, and \
# proxying for TCP and HTTP-based applications
# description: HAProxy is a free, very fast and reliable solution \
# offering high availability, load balancing, and \
# proxying for TCP and HTTP-based applications
# processname: haproxy
# config: /etc/kazoo/haproxy/haproxy.cfg
# pidfile: /var/run/kazoo-haproxy.pid
# config: /etc/kazoo/haproxy/haproxy.cfg
# pidfile: /var/run/kazoo-haproxy.pid
RETVAL=0
LOCK_FILE=/var/lock/subsys/kazoo-haproxy
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
exec="/usr/sbin/haproxy"
prog=$(basename $exec)
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
cfgfile=/etc/kazoo/haproxy/haproxy.cfg
pidfile=/var/run/kazoo-haproxy.pid
lockfile=/var/lock/subsys/kazoo-haproxy
check() {
$exec -c -V -f $cfgfile $OPTIONS
}
start() {
$exec -c -q -f $cfgfile $OPTIONS
if [ $? -ne 0 ]; then
echo "Errors in configuration file, check with $prog check."
return 1
fi
echo -n $"Starting $prog: "
# start it up here, usually something like "daemon $exec"
daemon $exec -D -f $cfgfile -p $pidfile $OPTIONS
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
RETVAL=1
echo -n $"Starting HAProxy: "
/usr/sbin/kazoo-haproxy start
RETVAL=$?
echo
[ ${RETVAL} -eq 0 ] && touch ${LOCK_FILE}
}
stop() {
echo -n $"Stopping $prog: "
# stop it here, often "killproc $prog"
killproc $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
$exec -c -q -f $cfgfile $OPTIONS
if [ $? -ne 0 ]; then
echo "Errors in configuration file, check with $prog check."
return 1
fi
stop
start
}
reload() {
$exec -c -q -f $cfgfile $OPTIONS
if [ $? -ne 0 ]; then
echo "Errors in configuration file, check with $prog check."
return 1
fi
echo -n $"Reloading $prog: "
$exec -D -f $cfgfile -p $pidfile $OPTIONS -sf $(cat $pidfile)
retval=$?
echo
return $retval
RETVAL=1
echo -n $"Stopping HAProxy: "
/usr/sbin/kazoo-haproxy stop
RETVAL=$?
if [ ${RETVAL} -eq 0 ]; then
rm -f ${LOCK_FILE} ${pidfile}
success
else
failure
fi
echo
}
force_reload() {
restart
status() {
/usr/sbin/kazoo-haproxy status
RETVAL=$?
}
fdr_status() {
status $prog
restart() {
stop
start
}
case "$1" in
start|stop|restart|reload)
$1
;;
force-reload)
force_reload
;;
check)
check
;;
status)
fdr_status
;;
condrestart|try-restart)
[ ! -f $lockfile ] || restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
exit 2
start|stop|restart|reload)
$1
;;
force-reload)
restart
;;
reload)
/usr/sbin/kazoo-haproxy reload
check)
/usr/sbin/kazoo-haproxy check
;;
status)
/usr/sbin/kazoo-haproxy status
;;
condrestart|try-restart)
[ ! -f $lockfile ] || restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
RETVAL=1
esac
exit ${RETVAL}

+ 123
- 136
system/init.d/kazoo-rabbitmq.redhat View File

@ -5,188 +5,175 @@
# chkconfig: - 80 05
# description: Enable AMQP service provided by RabbitMQ
#
### BEGIN INIT INFO
# Provides: rabbitmq-server
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Description: RabbitMQ broker
# Provides: rabbitmq-server
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Description: RabbitMQ broker
# Short-Description: Enable AMQP service provided by RabbitMQ broker
### END INIT INFO
# Source function library.
. /etc/init.d/functions
RETVAL=0
PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME=rabbitmq-server
DAEMON=/usr/sbin/${NAME}
CONTROL=/usr/sbin/rabbitmqctl
CONTROL=/usr/sbin/kazoo-rabbitmq
DESC=rabbitmq-server
USER=rabbitmq
ROTATE_SUFFIX=
INIT_LOG_DIR=/var/log/rabbitmq
PID_FILE=/var/run/rabbitmq/kazoo-pid
START_PROG="daemon"
LOCK_FILE=/var/lock/subsys/kazoo-$NAME
test -x $DAEMON || exit 0
. /etc/init.d/functions
test -x $CONTROL || exit 0
RETVAL=0
set -e
while read LINE; do
export RABBITMQ_$LINE
done < /etc/kazoo/rabbitmq/rabbitmq-env.conf
export RABBITMQ_CONFIG_FILE=/etc/kazoo/rabbitmq/rabbitmq
export RABBITMQ_ENABLED_PLUGINS_FILE=/etc/kazoo/rabbitmq/enabled_plugins
[ -f /etc/default/${NAME} ] && . /etc/default/${NAME}
[ -f /etc/sysconfig/${NAME} ] && . /etc/sysconfig/${NAME}
ensure_pid_dir () {
PID_DIR=`dirname ${PID_FILE}`
if [ ! -d ${PID_DIR} ] ; then
mkdir -p ${PID_DIR}
chown -R ${USER}:${USER} ${PID_DIR}
chmod 755 ${PID_DIR}
fi
PID_DIR=`dirname ${PID_FILE}`
if [ ! -d ${PID_DIR} ] ; then
mkdir -p ${PID_DIR}
chown -R ${USER}:${USER} ${PID_DIR}
chmod 755 ${PID_DIR}
fi
}
remove_pid () {
rm -f ${PID_FILE}
rmdir `dirname ${PID_FILE}` || :
rm -f ${PID_FILE}
rmdir `dirname ${PID_FILE}` || :
}
start_rabbitmq () {
status_rabbitmq quiet
if [ $RETVAL = 0 ] ; then
echo RabbitMQ is currently running
else
RETVAL=0
# RABBIT_NOFILES_LIMIT from /etc/sysconfig/rabbitmq-server is not handled
# automatically
if [ "$RABBITMQ_NOFILES_LIMIT" ]; then
ulimit -n $RABBITMQ_NOFILES_LIMIT
status_rabbitmq quiet
if [ $RETVAL = 0 ] ; then
echo RabbitMQ is currently running
else
RETVAL=0
# RABBIT_NOFILES_LIMIT from /etc/sysconfig/rabbitmq-server is not handled
# automatically
if [ "$RABBITMQ_NOFILES_LIMIT" ]; then
ulimit -n $RABBITMQ_NOFILES_LIMIT
fi
ensure_pid_dir
set +e
RABBITMQ_PID_FILE=$PID_FILE $START_PROG $CONTROL start \
> "${INIT_LOG_DIR}/startup_log" \
2> "${INIT_LOG_DIR}/startup_err" \
0<&- &
$CONTROL wait $PID_FILE >/dev/null 2>&1
RETVAL=$?
set -e
case "$RETVAL" in
0)
echo SUCCESS
if [ -n "$LOCK_FILE" ] ; then
touch $LOCK_FILE
fi
;;
*)
remove_pid
echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\}
RETVAL=1
;;
esac
fi
ensure_pid_dir
set +e
RABBITMQ_PID_FILE=$PID_FILE $START_PROG $DAEMON \
> "${INIT_LOG_DIR}/startup_log" \
2> "${INIT_LOG_DIR}/startup_err" \
0<&- &
$CONTROL wait $PID_FILE >/dev/null 2>&1
RETVAL=$?
set -e
case "$RETVAL" in
0)
echo SUCCESS
if [ -n "$LOCK_FILE" ] ; then
touch $LOCK_FILE
fi
;;
*)
remove_pid
echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\}
RETVAL=1
;;
esac
fi
}
stop_rabbitmq () {
status_rabbitmq quiet
if [ $RETVAL = 0 ] ; then
set +e
$CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err
RETVAL=$?
set -e
if [ $RETVAL = 0 ] ; then
remove_pid
if [ -n "$LOCK_FILE" ] ; then
rm -f $LOCK_FILE
fi
else
echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err
fi
else
echo RabbitMQ is not running
RETVAL=0
fi
status_rabbitmq quiet
if [ $RETVAL = 0 ] ; then
set +e
$CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err
RETVAL=$?
set -e
if [ $RETVAL = 0 ] ; then
remove_pid
if [ -n "$LOCK_FILE" ] ; then
rm -f $LOCK_FILE
fi
else
echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err
fi
else
echo RabbitMQ is not running
RETVAL=0
fi
}
status_rabbitmq() {
set +e
if [ "$1" != "quiet" ] ; then
$CONTROL status 2>&1
else
$CONTROL status > /dev/null 2>&1
fi
if [ $? != 0 ] ; then
RETVAL=3
fi
set -e
set +e
if [ "$1" != "quiet" ] ; then
$CONTROL status 2>&1
else
$CONTROL status > /dev/null 2>&1
fi
if [ $? != 0 ] ; then
RETVAL=3
fi
set -e
}
rotate_logs_rabbitmq() {
set +e
$CONTROL rotate_logs ${ROTATE_SUFFIX}
if [ $? != 0 ] ; then
RETVAL=1
fi
set -e
set +e
$CONTROL rotate_logs ${ROTATE_SUFFIX}
if [ $? != 0 ] ; then
RETVAL=1
fi
set -e
}
restart_running_rabbitmq () {
status_rabbitmq quiet
if [ $RETVAL = 0 ] ; then
restart_rabbitmq
else
echo RabbitMQ is not runnning
RETVAL=0
fi
status_rabbitmq quiet
if [ $RETVAL = 0 ] ; then
restart_rabbitmq
else
echo RabbitMQ is not runnning
RETVAL=0
fi
}
restart_rabbitmq() {
stop_rabbitmq
start_rabbitmq
stop_rabbitmq
start_rabbitmq
}
case "$1" in
start)
echo -n "Starting $DESC: "
start_rabbitmq
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
stop_rabbitmq
echo "$NAME."
;;
status)
status_rabbitmq
;;
rotate-logs)
echo -n "Rotating log files for $DESC: "
rotate_logs_rabbitmq
;;
force-reload|reload|restart)
echo -n "Restarting $DESC: "
restart_rabbitmq
echo "$NAME."
;;
try-restart)
echo -n "Restarting $DESC: "
restart_running_rabbitmq
echo "$NAME."
;;
*)
echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2
RETVAL=1
;;
start)
echo -n "Starting $DESC: "
start_rabbitmq
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
stop_rabbitmq
echo "$NAME."
;;
status)
status_rabbitmq
;;
rotate-logs)
echo -n "Rotating log files for $DESC: "
rotate_logs_rabbitmq
;;
force-reload|reload|restart)
echo -n "Restarting $DESC: "
restart_rabbitmq
echo "$NAME."
;;
try-restart)
echo -n "Restarting $DESC: "
restart_running_rabbitmq
echo "$NAME."
;;
*)
echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2
RETVAL=1
;;
esac
exit $RETVAL

+ 78
- 0
system/sbin/kazoo-bigcouch View File

@ -0,0 +1,78 @@
#!/bin/bash
if [ -f /etc/sysconfig/bigcouch ]; then
. /etc/sysconfig/bigcouch
fi
RETVAL=0
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
else
BEAM=beam.smp
fi
start() {
mkdir -p ${HOME}
chown -R ${USER} ${HOME}
mkdir -p /var/log/bigcouch
chown -R ${USER} /var/log/bigcouch
cd ${HOME}
if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE}
else
exec su ${USER} -s /bin/bash -c "${BIN_FILE}"
fi
RETVAL=$?
}
stop() {
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
kill $i
RETVAL=$?
fi
done
}
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
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
echo $"Usage: $0 (start|stop|status)"
RETVAL=1
esac
exit ${RETVAL}

+ 67
- 0
system/sbin/kazoo-freeswitch View File

@ -0,0 +1,67 @@
#!/bin/bash
if [ -f /etc/sysconfig/freeswitch ]; then
. /etc/sysconfig/freeswitch
fi
RETVAL=0
USER=${FS_USER:-freeswitch}
CFG_FILE=${FS_CONFIG:-/etc/kazoo/freeswitch}
BIN_FILE=${FS_BIN:-/usr/bin/freeswitch}
export HOME=${FS_HOME:-/var/run/kazoo-freeswitch}
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}
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
cd ${HOME}
if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE} ${FREESWITCH_ARGS} ${FREESWITCH_PARAMS} $@
else
su ${USER} -s /bin/bash -c "exec ${BIN_FILE} ${FREESWITCH_ARGS} ${FREESWITCH_PARAMS} $@"
fi
RETVAL=$?
}
stop() {
cd ${HOME}
${BIN_FILE} -stop > /dev/null 2>&1
killproc freeswitch
RETVAL=$?
}
status() {
fs_cli -x 'status'
fs_cli -x 'erlang status'
RETVAL=$?
}
case "$1" in
start)
shift
start -ncwait $@
;;
foreground)
shift
start $@
;;
stop)
stop
;;
status)
status
;;
*)
echo "Usage: freeswitch {start|stop|status}"
RETVAL=1
;;
esac
exit ${RETVAL}

+ 143
- 0
system/sbin/kazoo-haproxy View File

@ -0,0 +1,143 @@
#!/bin/sh
if [ -f /etc/sysconfig/haproxy ]; then
. /etc/sysconfig/haproxy
fi
RETVAL=0
USER=${HAPROXY_USER:-haproxy}
CFG_FILE=${HAPROXY_CONFIG:-/etc/kazoo/haproxy/haproxy.cfg}
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}
}
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
return
fi
mkdir -p /var/run/haproxy
chown -R ${USER} /var/run/haproxy
mkdir -p /var/log/haproxy
chown -R ${USER} /var/log/haproxy
cd ${HOME}
if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} $@
else
exec su ${USER} -s /bin/bash -c "${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} $@"
fi
RETVAL=$?
}
stop() {
kill $(cat ${PID_FILE})
RETVAL=$?
}
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
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 ! nc -U /tmp/haproxy.sock &> /dev/null; then
echo "Unable to connect to haproxy, ensure it is running!"
RETVAL=1
return 1
fi
echo -n "|"
for HEADER in $TABLE_HEADER; do
if [[ "${HEADER}" =~ "|" ]]; then
NAME="${HEADER%%|*}"
SIZE=${HEADER#*|}
else
NAME="${HEADER%%|*}"
SIZE=6
fi
printf "%-${SIZE}s |" $NAME
done
echo
echo "show stat" | nc -U /tmp/haproxy.sock \
| while IFS=',' read ${STATS}; do
if [ -z "$svname" ]; then
continue
fi
if [ "$svname" == 'svname' ]; then
continue
fi
if [ "$svname" == 'BACKEND' ]; then
continue
fi
if [ "$svname" == 'FRONTEND' ]; then
continue
fi
echo -n "|"
for VAR in $TABLE_VARS; do
if [[ "${VAR}" =~ "|" ]]; then
NAME="${VAR%%|*}"
SIZE=${VAR#*|}
else
NAME="${VAR%%|*}"
SIZE=6
fi
eval VALUE=\$$NAME
if [ "${VAR}" == 'check_duration' ]; then
VALUE="${VALUE}ms"
fi
printf "%-${SIZE}s |" ${VALUE:-0}
done
echo
done
}
case "$1" in
start|stop|restart|reload)
shift
$1 -D $@
;;
foreground)
shift
start $@
;;
check)
check
;;
status)
status
;;
*)
echo $"Usage: $0 {start|stop|restart|foreground|reload|check|status}"
RETVAL=1
esac
exit ${RETVAL}

+ 51
- 0
system/sbin/kazoo-rabbitmq View File

@ -0,0 +1,51 @@
#!/bin/bash -e
RETVAL=0
USER=${RABBITMQ_USER-rabbitmq}
CFG_FILE=${RABBITMQ_ENV:-/etc/kazoo/rabbitmq/rabbitmq-env.conf}
BIN_FILE=${RABBITMQ_BIN:-/usr/lib/rabbitmq/bin/rabbitmq-server}
while read LINE; do
export RABBITMQ_$LINE
done < ${CFG_FILE}
if [ -f /etc/sysconfig/bigcouch ]; then
. /etc/sysconfig/bigcouch
fi
export HOME=${RABBITMQ_HOME-/var/lib/rabbitmq}
export RABBITMQ_CONFIG_FILE=/etc/kazoo/rabbitmq/rabbitmq
export RABBITMQ_ENABLED_PLUGINS_FILE=/etc/kazoo/rabbitmq/enabled_plugins
export RABBITMQ_NODENAME=kazoo-rabbitmq
start() {
mkdir -p ${HOME}
chown -R ${USER} ${HOME}
mkdir -p /var/log/rabbitmq
chown -R ${USER} /var/log/rabbitmq
cd ${HOME}
if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE} $@
else
exec su ${USER} -s /bin/bash -c "${BIN_FILE} $@"
fi
RETVAL=$?
}
case "$1" in
start)
shift
start -detached $@
;;
foreground)
shift
start $@
;;
*)
exec /usr/lib/rabbitmq/bin/rabbitmqctl $@
RETVAL=$?
;;
esac
exit ${RETVAL}

+ 14
- 0
system/systemd/kazoo-bigcouch.service View File

@ -0,0 +1,14 @@
[Unit]
Description=BigCouch DB Configured for Kazoo
After=syslog.target network.target
[Service]
Type=forking
User=bigcouch
Group=daemon
WorkingDirectory=/srv
ExecStart=/usr/sbin/kazoo-bigcouch start
ExecStop=/usr/sbin/kazoo-bigcouch stop
[Install]
WantedBy=multi-user.target

+ 16
- 0
system/systemd/kazoo-freeswitch.service View File

@ -0,0 +1,16 @@
[Unit]
Description=FreeSWITCH Configured for Kazoo
After=syslog.target network.target
After=postgresql.service postgresql-9.3.service postgresql-9.4.service mysqld.service httpd.service
[Service]
User=freeswitch
# 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
ExecStart=/usr/sbin/kazoo-freeswitch foreground -nc -nf
ExecReload=/usr/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

+ 15
- 0
system/systemd/kazoo-haproxy.service View File

@ -0,0 +1,15 @@
[Unit]
Description=HAProxy Load Balancer Configured for Kazoo
After=syslog.target network.target
[Service]
User=haproxy
Group=haproxy
Environment=HAPROXY_BIN=/usr/sbin/haproxy-systemd-wrapper
Environment=HAPROXY_PID=/run/haproxy.pid
ExecStart=/usr/sbin/kazoo-haproxy foreground
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target

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

@ -0,0 +1,14 @@
[Unit]
Description=RabbitMQ Broker Configured for Kazoo
After=syslog.target network.target
[Service]
Type=notify
User=rabbitmq
Group=rabbitmq
WorkingDirectory=/var/lib/rabbitmq
ExecStart=/usr/sbin/kazoo-rabbitmq start
ExecStop=/usr/sbin/kazoo-rabbitmq stop
[Install]
WantedBy=multi-user.target

Loading…
Cancel
Save