rabbitmq-server/rabbitmq-server.init
Ralf Haferkamp 150d13883c Accepting request 162573 from home:dirkmueller:branches:network:messaging:amqp
------------------------------------------------------------------
- Change init script to properly daemonize (patch by jdsn) (bnc#807540)

- Added systemd .service file

OBS-URL: https://build.opensuse.org/request/show/162573
OBS-URL: https://build.opensuse.org/package/show/network:messaging:amqp/rabbitmq-server?expand=0&rev=16
2013-04-04 09:48:47 +00:00

166 lines
3.6 KiB
Bash

#!/bin/sh
#
# rabbitmq-server RabbitMQ broker
#
# chkconfig: - 80 05
# description: Enable AMQP service provided by RabbitMQ
#
### BEGIN INIT INFO
# Provides: rabbitmq-server
# Required-Start: $local_fs $network $remote_fs
# Required-Stop: $local_fs $network $remote_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
# Description: RabbitMQ broker
# Short-Description: Enable AMQP service provided by RabbitMQ broker
### END INIT INFO
# Source function library
. /etc/rc.status
rc_reset
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/pid
DEFAULTS_FILE=/etc/sysconfig/rabbitmq-server
LOCK_FILE=/var/run/rabbitmq/lock
test -x $DAEMON || exit 0
test -x $CONTROL || exit 0
# Include rabbitmq defaults if available
if [ -f "$DEFAULTS_FILE" ] ; then
. $DEFAULTS_FILE
export RABBITMQ_MNESIA_BASE RABBITMQ_LOG_BASE \
RABBITMQ_NODENAME RABBITMQ_NODE_IP_ADDRESS RABBITMQ_NODE_PORT \
RABBITMQ_CLUSTER_CONFIG_FILE RABBITMQ_CONFIG_FILE
fi
mkdir -p /var/run/rabbitmq
chown rabbitmq. /var/run/rabbitmq
start_rabbitmq () {
status_rabbitmq quiet
if [ $? -eq 0 ] ; then
return 0
else
export RABBITMQ_PID_FILE=$PID_FILE
startproc -l ${INIT_LOG_DIR}/startup_log -p $PID_FILE $DAEMON
$CONTROL wait $PID_FILE >/dev/null 2>&1
rc=$?
case "$rc" in
0)
if [ -n "$LOCK_FILE" ] ; then
touch $LOCK_FILE
fi
;;
*)
rm -f $PID_FILE
echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\}
rc=1
;;
esac
fi
return $rc
}
stop_rabbitmq () {
status_rabbitmq quiet
if [ $? -eq 0 ] ; then
$CONTROL stop > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err
rc=$?
if [ $rc -eq 0 ] ; then
rm -f $PID_FILE
if [ -n "$LOCK_FILE" ] ; then
rm -f $LOCK_FILE
fi
else
echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err
fi
else
rc=0
fi
return $rc
}
status_rabbitmq() {
rc=0
if [ "$1" != "quiet" ] ; then
$CONTROL status 2>&1
else
$CONTROL status > /dev/null 2>&1
fi
if [ $? -ne 0 ] ; then
rc=3
fi
return $rc
}
rotate_logs_rabbitmq() {
rc=0
$CONTROL rotate_logs ${ROTATE_SUFFIX}
if [ $? != 0 ] ; then
rc=1
fi
return $rc
}
restart_running_rabbitmq () {
status_rabbitmq quiet
if [ $? -eq 0 ] ; then
restart_rabbitmq
else
echo RabbitMQ is not runnning
fi
}
restart_rabbitmq() {
$0 stop
$0 start
}
case "$1" in
start)
echo -n "Starting $DESC: "
start_rabbitmq
rc_status -v
;;
stop)
echo -n "Stopping $DESC: "
stop_rabbitmq
rc_status -v
;;
status)
status_rabbitmq
rc_status # no verbose here -- status function already prints status out
;;
rotate-logs)
echo -n "Rotating log files for $DESC: "
rotate_logs_rabbitmq
rc_status
;;
force-reload|reload|restart)
restart_rabbitmq
rc_status
;;
condrestart|try-restart)
restart_running_rabbitmq
rc_status
;;
*)
echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2
exit 1
;;
esac
rc_exit