| @ -0,0 +1,192 @@ | |||||
| #!/bin/sh | |||||
| # | |||||
| # rabbitmq-server RabbitMQ broker | |||||
| # | |||||
| # 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 | |||||
| # Short-Description: Enable AMQP service provided by RabbitMQ broker | |||||
| ### END INIT INFO | |||||
| # Source function library. | |||||
| . /etc/init.d/functions | |||||
| PATH=/sbin:/usr/sbin:/bin:/usr/bin | |||||
| NAME=rabbitmq-server | |||||
| DAEMON=/usr/sbin/${NAME} | |||||
| CONTROL=/usr/sbin/rabbitmqctl | |||||
| 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 | |||||
| test -x $CONTROL || exit 0 | |||||
| RETVAL=0 | |||||
| set -e | |||||
| export RABBITMQ_NODENAME="kazoo-rabbit" | |||||
| export RABBITMQ_NODE_IP_ADDRESS=0.0.0.0 | |||||
| export RABBITMQ_NODE_PORT=5672 | |||||
| export RABBITMQ_CONFIG_FILE=/etc/kazoo/rabbitmq/rabbitmq.config | |||||
| 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 | |||||
| } | |||||
| remove_pid () { | |||||
| 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 | |||||
| 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() { | |||||
| 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 | |||||
| } | |||||
| restart_running_rabbitmq () { | |||||
| status_rabbitmq quiet | |||||
| if [ $RETVAL = 0 ] ; then | |||||
| restart_rabbitmq | |||||
| else | |||||
| echo RabbitMQ is not runnning | |||||
| RETVAL=0 | |||||
| fi | |||||
| } | |||||
| restart_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 | |||||
| ;; | |||||
| esac | |||||
| exit $RETVAL | |||||