Skip to content

Commit 2b9bc34

Browse files
author
Emile Joubert
committed
lsb init script for debian
1 parent 9dc09c6 commit 2b9bc34

File tree

2 files changed

+186
-8
lines changed

2 files changed

+186
-8
lines changed

packaging/debs/Debian/Makefile

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,7 @@ package: clean
2222
tar -zxf $(DEBIAN_ORIG_TARBALL)
2323
cp -r debian $(UNPACKED_DIR)
2424
cp $(COMMON_DIR)/* $(UNPACKED_DIR)/debian/
25-
# Debian and descendants differ from most other distros in that
26-
# runlevel 2 should start network services.
27-
sed -i \
28-
-e 's|^LOCK_FILE=.*$$|LOCK_FILE=|' \
29-
-e 's|^START_PROG=.*$$|START_PROG="start-stop-daemon -v --chuid rabbitmq --start --exec"|' \
30-
-e 's|^\(# Default-Start:\).*$$|\1 2 3 4 5|' \
31-
-e 's|^\(# Default-Stop:\).*$$|\1 0 1 6|' \
32-
$(UNPACKED_DIR)/debian/rabbitmq-server.init
25+
cp rabbitmq-server.init $(UNPACKED_DIR)/debian/rabbitmq-server.init
3326
sed -i -e 's|@SU_RABBITMQ_SH_C@|su rabbitmq -s /bin/sh -c|' \
3427
$(UNPACKED_DIR)/debian/rabbitmq-script-wrapper
3528
chmod a+x $(UNPACKED_DIR)/debian/rules
Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
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+
# Default-Start: 2 3 4 5
14+
# Default-Stop: 0 1 6
15+
# Description: RabbitMQ broker
16+
# Short-Description: Enable AMQP service provided by RabbitMQ broker
17+
### END INIT INFO
18+
19+
PATH=/sbin:/usr/sbin:/bin:/usr/bin
20+
NAME=rabbitmq-server
21+
DAEMON=/usr/sbin/${NAME}
22+
CONTROL=/usr/sbin/rabbitmqctl
23+
DESC=rabbitmq-server
24+
USER=rabbitmq
25+
ROTATE_SUFFIX=
26+
INIT_LOG_DIR=/var/log/rabbitmq
27+
PID_FILE=/var/run/rabbitmq/pid
28+
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+
. /lib/lsb/init-functions
39+
. /lib/init/vars.sh
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+
RETVAL=0
59+
ensure_pid_dir
60+
set +e
61+
RABBITMQ_PID_FILE=$PID_FILE start-stop-daemon --quiet \
62+
--chuid rabbitmq --start --exec $DAEMON \
63+
--pidfile "$RABBITMQ_PID_FILE" \
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+
if [ $RETVAL != 0 ] ; then
71+
remove_pid
72+
fi
73+
else
74+
RETVAL=3
75+
fi
76+
}
77+
78+
stop_rabbitmq () {
79+
status_rabbitmq quiet
80+
if [ $RETVAL = 0 ] ; then
81+
set +e
82+
$CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err
83+
RETVAL=$?
84+
set -e
85+
if [ $RETVAL = 0 ] ; then
86+
remove_pid
87+
fi
88+
else
89+
RETVAL=3
90+
fi
91+
}
92+
93+
status_rabbitmq() {
94+
set +e
95+
if [ "$1" != "quiet" ] ; then
96+
$CONTROL status 2>&1
97+
else
98+
$CONTROL status > /dev/null 2>&1
99+
fi
100+
if [ $? != 0 ] ; then
101+
RETVAL=3
102+
fi
103+
set -e
104+
}
105+
106+
rotate_logs_rabbitmq() {
107+
set +e
108+
$CONTROL -q rotate_logs ${ROTATE_SUFFIX}
109+
if [ $? != 0 ] ; then
110+
RETVAL=1
111+
fi
112+
set -e
113+
}
114+
115+
restart_running_rabbitmq () {
116+
status_rabbitmq quiet
117+
if [ $RETVAL = 0 ] ; then
118+
restart_rabbitmq
119+
else
120+
log_warning_msg "$DESC not running"
121+
RETVAL=0
122+
fi
123+
}
124+
125+
restart_rabbitmq() {
126+
stop_rabbitmq
127+
start_rabbitmq
128+
}
129+
130+
restart_end() {
131+
if [ $RETVAL = 0 ] ; then
132+
log_end_msg 0
133+
else
134+
log_end_msg 1
135+
fi
136+
}
137+
138+
start_stop_end() {
139+
case "$RETVAL" in
140+
0)
141+
log_end_msg 0;;
142+
3)
143+
log_end_msg 1;;
144+
*)
145+
log_warning_msg "FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\}"
146+
log_end_msg 1;;
147+
esac
148+
}
149+
150+
case "$1" in
151+
start)
152+
log_daemon_msg "Starting ${DESC}" ${NAME}
153+
start_rabbitmq
154+
start_stop_end
155+
;;
156+
stop)
157+
log_daemon_msg "Stopping ${DESC}" ${NAME}
158+
stop_rabbitmq
159+
start_stop_end
160+
;;
161+
status)
162+
status_rabbitmq
163+
;;
164+
rotate-logs)
165+
log_action_begin_msg "Rotating log files for $DESC: "
166+
rotate_logs_rabbitmq
167+
log_action_end_msg $?
168+
;;
169+
force-reload|reload|restart)
170+
log_daemon_msg "Restarting $DESC" "$NAME"
171+
restart_rabbitmq
172+
restart_end
173+
;;
174+
try-restart)
175+
log_daemon_msg "Restarting $DESC" "$NAME"
176+
restart_running_rabbitmq
177+
restart_end
178+
;;
179+
*)
180+
echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2
181+
RETVAL=1
182+
;;
183+
esac
184+
185+
exit $RETVAL

0 commit comments

Comments
 (0)