Added status command to rabbit_mutli, init.d scripts

now use that command.
Used status command in init.d scripts to check
if the server is running before stopping it.
Fixed various indentation problems in init.d scripts.
Synchronized the init.d in Debian and RPM to behave
in a similar way.
This commit is contained in:
Hubert Plociniczak 2008-09-11 14:10:14 +01:00
parent 131d39c9cb
commit 8f209a026e
4 changed files with 143 additions and 83 deletions

View File

@ -23,6 +23,9 @@ start_all I<count>
start count nodes with unique names, listening on all IP addresses
and on sequential ports starting from 5672.
status
print the status of all running RabbitMQ nodes
stop_all
stop all local RabbitMQ nodes

View File

@ -47,40 +47,49 @@ start_rabbitmq () {
case "$?" in
0)
echo SUCCESS && touch $LOCK_FILE
RETVAL=0
;;
1)
echo TIMEOUT - check /var/log/rabbitmq/startup_\{log,err\}
RETVAL=1
;;
*)
echo FAILED - check /var/log/rabbitmq/startup_log, _err
RETVAL=1;;
RETVAL=1
;;
esac
set -e
}
stop_rabbitmq () {
set +e
su $USER -s /bin/sh -c "$DAEMON stop_all" > /var/log/rabbitmq/shutdown_log 2> /var/log/rabbitmq/shutdown_err
if [ $? != 0 ] ; then
echo FAILED - check /var/log/rabbitmq/shutdown_log, _err
status_rabbitmq quiet
if [ $RETVAL == 0 ] ; then
su $USER -s /bin/sh -c "$DAEMON stop_all" > /var/log/rabbitmq/shutdown_log 2> /var/log/rabbitmq/shutdown_err
RETVAL=$?
if [ $RETVAL != 0 ] ; then
echo FAILED - check /var/log/rabbitmq/shutdown_log, _err
else
rm -rf $LOCK_FILE
fi
else
rm -rf $LOCK_FILE
echo No nodes running
RETVAL=0
fi
set -e
}
status_rabbitmq () {
status $NAME
}
restart_rabbitmq () {
echo -n "Restarting $DESC: "
stop_rabbitmq
start_rabbitmq
echo "$NAME."
status_rabbitmq() {
set +e
if [ "$1" != "quiet" ] ; then
su $USER -s /bin/sh -c "$DAEMON status" 2>&1
else
su $USER -s /bin/sh -c "$DAEMON status" > /dev/null 2>&1
fi
if [ $? != 0 ] ; then
RETVAL=1
fi
set -e
}
rotate_logs_rabbitmq() {
@ -89,37 +98,43 @@ rotate_logs_rabbitmq() {
set -e
}
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."
;;
rotate-logs)
echo -n "Rotating log files for $DESC: "
rotate_logs_rabbitmq
;;
force-reload|reload|restart)
restart_rabbitmq
;;
status)
echo "Status of $DESC: "
status_rabbitmq
RETVAL=$?
;;
condrestart|try-restart)
status_rabbitmq >/dev/null 2>&1 || exit 0
restart_rabbitmq
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."
;;
condrestart|try-restart)
echo -n "Restarting $DESC: "
restart_rabbitmq
echo "$NAME."
;;
*)
echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2
RETVAL=1
;;
*)
echo "Usage: $0 {start|stop|rotate-logs|status|restart|condrestart|try-restart|reload|force-reload}" >&2
RETVAL=1
;;
esac
exit $RETVAL

View File

@ -29,26 +29,50 @@ set -e
cd /
start_rabbitmq () {
set +e
su $USER -s /bin/sh -c "$DAEMON start_all ${NODE_COUNT}" > /var/log/rabbitmq/startup_log 2> /var/log/rabbitmq/startup_err
case "$?" in
0)
echo SUCCESS;;
1)
echo TIMEOUT - check /var/log/rabbitmq/startup_\{log,err\};;
*)
echo FAILED - check /var/log/rabbitmq/startup_log, _err
exit 1;;
esac
set -e
set +e
su $USER -s /bin/sh -c "$DAEMON start_all ${NODE_COUNT}" > /var/log/rabbitmq/startup_log 2> /var/log/rabbitmq/startup_err
case "$?" in
0)
echo SUCCESS
RETVAL=0
;;
1)
echo TIMEOUT - check /var/log/rabbitmq/startup_\{log,err\}
RETVAL=1
;;
*)
echo FAILED - check /var/log/rabbitmq/startup_log, _err
RETVAL=1
;;
esac
set -e
}
stop_rabbitmq () {
set +e
su $USER -s /bin/sh -c "$DAEMON stop_all" > /var/log/rabbitmq/shutdown_log 2> /var/log/rabbitmq/shutdown_err
status_rabbitmq quiet
if [ $RETVAL == 0 ] ; then
su $USER -s /bin/sh -c "$DAEMON stop_all" > /var/log/rabbitmq/shutdown_log 2> /var/log/rabbitmq/shutdown_err
RETVAL=$?
if [ $RETVAL != 0 ] ; then
echo FAILED - check /var/log/rabbitmq/shutdown_log, _err
fi
else
echo No nodes running
RETVAL=0
fi
set -e
}
status_rabbitmq() {
set +e
if [ "$1" != "quiet" ] ; then
su $USER -s /bin/sh -c "$DAEMON status" 2>&1
else
su $USER -s /bin/sh -c "$DAEMON status" > /dev/null 2>&1
fi
if [ $? != 0 ] ; then
echo FAILED - check /var/log/rabbitmq/shutdown_log, _err
exit 0
RETVAL=1
fi
set -e
}
@ -57,34 +81,40 @@ rotate_logs_rabbitmq() {
set +e
su $USER -s /bin/sh -c "$DAEMON rotate_logs ${ROTATE_SUFFIX}" 2>&1
set -e
}
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."
;;
rotate-logs)
echo -n "Rotating log files for $DESC: "
rotate_logs_rabbitmq
;;
force-reload|restart)
echo -n "Restarting $DESC: "
stop_rabbitmq
start_rabbitmq
echo "$NAME."
;;
*)
echo "Usage: $0 {start|stop|rotate-logs|restart|force-reload}" >&2
RETVAL=1
;;
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|restart)
echo -n "Restarting $DESC: "
restart_rabbitmq
echo "$NAME."
;;
*)
echo "Usage: $0 {start|stop|status|rotate-logs|restart|force-reload}" >&2
RETVAL=1
;;
esac
exit $RETVAL

View File

@ -70,6 +70,7 @@ usage() ->
Available commands:
start_all <NodeCount> - start a local cluster of RabbitMQ nodes.
status - print status of all running nodes
stop_all - stops all local RabbitMQ nodes.
rotate_logs [Suffix] - rotate logs for all local and running RabbitMQ nodes.
"),
@ -88,6 +89,17 @@ action(start_all, [NodeCount], RpcTimeout) ->
false -> timeout
end;
action(status, [], RpcTimeout) ->
io:format("Status of all running nodes...~n", []),
call_all_nodes(
fun({Node, Pid}) ->
io:format("Node '~p' with Pid ~p: ", [Node, Pid]),
case rpc:call(Node, rabbit, status, [], RpcTimeout) of
{badrpc, Error} -> io:format("~p~n", [Error]);
[{running_applications, Apps} | _] -> io:format("~p~n", [Apps])
end
end);
action(stop_all, [], RpcTimeout) ->
io:format("Stopping all nodes...~n", []),
call_all_nodes(fun({Node, Pid}) ->