Rabbitmq server repackaged for 7.0
[packages/centos6/rabbitmq-server.git] / rabbitmq-server.init
1 #!/bin/sh
2 #
3 # rabbitmq-server RabbitMQ broker
4 #
5 # chkconfig: - 80 05
6 # description: Enable AMQP service provided by RabbitMQ
7 #
8
9 ### BEGIN INIT INFO
10 # Provides:          rabbitmq-server
11 # Required-Start:    $remote_fs $network
12 # Required-Stop:     $remote_fs $network
13 # Description:       RabbitMQ broker
14 # Short-Description: Enable AMQP service provided by RabbitMQ broker
15 ### END INIT INFO
16
17 # Source function library.
18 . /etc/init.d/functions
19
20 PATH=/sbin:/usr/sbin:/bin:/usr/bin
21 NAME=rabbitmq-server
22 DAEMON=/usr/sbin/${NAME}
23 CONTROL=/usr/sbin/rabbitmqctl
24 DESC=rabbitmq-server
25 USER=rabbitmq
26 ROTATE_SUFFIX=
27 INIT_LOG_DIR=/var/log/rabbitmq
28 PID_FILE=/var/run/rabbitmq/pid
29
30 START_PROG="daemon"
31 LOCK_FILE=/var/lock/subsys/$NAME
32
33 test -x $DAEMON || exit 0
34 test -x $CONTROL || exit 0
35
36 RETVAL=0
37 set -e
38
39 [ -f /etc/default/${NAME} ] && . /etc/default/${NAME}
40
41 ensure_pid_dir () {
42     PID_DIR=`dirname ${PID_FILE}`
43     if [ ! -d ${PID_DIR} ] ; then
44         mkdir -p ${PID_DIR}
45         chown -R ${USER}:${USER} ${PID_DIR}
46         chmod 755 ${PID_DIR}
47     fi
48 }
49
50 remove_pid () {
51     rm -f ${PID_FILE}
52     rmdir `dirname ${PID_FILE}` || :
53 }
54
55 start_rabbitmq () {
56     status_rabbitmq quiet
57     if [ $RETVAL = 0 ] ; then
58         echo RabbitMQ is currently running
59     else
60         RETVAL=0
61         ensure_pid_dir
62         set +e
63         RABBITMQ_PID_FILE=$PID_FILE $START_PROG $DAEMON \
64             > "${INIT_LOG_DIR}/startup_log" \
65             2> "${INIT_LOG_DIR}/startup_err" \
66             0<&- &
67         $CONTROL wait $PID_FILE >/dev/null 2>&1
68         RETVAL=$?
69         set -e
70         case "$RETVAL" in
71             0)
72                 echo SUCCESS
73                 if [ -n "$LOCK_FILE" ] ; then
74                     touch $LOCK_FILE
75                 fi
76                 ;;
77             *)
78                 remove_pid
79                 echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\}
80                 RETVAL=1
81                 ;;
82         esac
83     fi
84 }
85
86 stop_rabbitmq () {
87     status_rabbitmq quiet
88     if [ $RETVAL = 0 ] ; then
89         set +e
90         $CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err
91         RETVAL=$?
92         set -e
93         if [ $RETVAL = 0 ] ; then
94             remove_pid
95             if [ -n "$LOCK_FILE" ] ; then
96                 rm -f $LOCK_FILE
97             fi
98         else
99             echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err
100         fi
101     else
102         echo RabbitMQ is not running
103         RETVAL=0
104     fi
105 }
106
107 status_rabbitmq() {
108     set +e
109     if [ "$1" != "quiet" ] ; then
110         $CONTROL status 2>&1
111     else
112         $CONTROL status > /dev/null 2>&1
113     fi
114     if [ $? != 0 ] ; then
115         RETVAL=3
116     fi
117     set -e
118 }
119
120 rotate_logs_rabbitmq() {
121     set +e
122     $CONTROL rotate_logs ${ROTATE_SUFFIX}
123     if [ $? != 0 ] ; then
124         RETVAL=1
125     fi
126     set -e
127 }
128
129 restart_running_rabbitmq () {
130     status_rabbitmq quiet
131     if [ $RETVAL = 0 ] ; then
132         restart_rabbitmq
133     else
134         echo RabbitMQ is not runnning
135         RETVAL=0
136     fi
137 }
138
139 restart_rabbitmq() {
140     stop_rabbitmq
141     start_rabbitmq
142 }
143
144 case "$1" in
145     start)
146         echo -n "Starting $DESC: "
147         start_rabbitmq
148         echo "$NAME."
149         ;;
150     stop)
151         echo -n "Stopping $DESC: "
152         stop_rabbitmq
153         echo "$NAME."
154         ;;
155     status)
156         status_rabbitmq
157         ;;
158     rotate-logs)
159         echo -n "Rotating log files for $DESC: "
160         rotate_logs_rabbitmq
161         ;;
162     force-reload|reload|restart)
163         echo -n "Restarting $DESC: "
164         restart_rabbitmq
165         echo "$NAME."
166         ;;
167     try-restart)
168         echo -n "Restarting $DESC: "
169         restart_running_rabbitmq
170         echo "$NAME."
171         ;;
172     *)
173         echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2
174         RETVAL=1
175         ;;
176 esac
177
178 exit $RETVAL