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