summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert@lshift.net>2008-09-11 14:10:14 +0100
committerHubert Plociniczak <hubert@lshift.net>2008-09-11 14:10:14 +0100
commit8f209a026e329308c855313a6957e4830bc846b0 (patch)
tree10299a9216c7778072cd238cf3276ebce2e9f452
parent131d39c9cb519a4fb90cca04bdc71721a47a4679 (diff)
downloadrabbitmq-server-git-8f209a026e329308c855313a6957e4830bc846b0.tar.gz
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.
-rw-r--r--docs/rabbitmq-multi.pod3
-rw-r--r--packaging/RPMS/Fedora/init.d99
-rw-r--r--packaging/debs/Debian/debian/init.d108
-rw-r--r--src/rabbit_multi.erl12
4 files changed, 141 insertions, 81 deletions
diff --git a/docs/rabbitmq-multi.pod b/docs/rabbitmq-multi.pod
index 7916fc7834..65d058337c 100644
--- a/docs/rabbitmq-multi.pod
+++ b/docs/rabbitmq-multi.pod
@@ -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
diff --git a/packaging/RPMS/Fedora/init.d b/packaging/RPMS/Fedora/init.d
index d699f9b601..397beeaa22 100644
--- a/packaging/RPMS/Fedora/init.d
+++ b/packaging/RPMS/Fedora/init.d
@@ -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)
+ 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
- ;;
- status)
- echo "Status of $DESC: "
- status_rabbitmq
- RETVAL=$?
- ;;
- condrestart|try-restart)
- status_rabbitmq >/dev/null 2>&1 || exit 0
+ 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
diff --git a/packaging/debs/Debian/debian/init.d b/packaging/debs/Debian/debian/init.d
index da9d70f2e4..a93f306692 100644
--- a/packaging/debs/Debian/debian/init.d
+++ b/packaging/debs/Debian/debian/init.d
@@ -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
diff --git a/src/rabbit_multi.erl b/src/rabbit_multi.erl
index 2b11771770..9373e8cb1d 100644
--- a/src/rabbit_multi.erl
+++ b/src/rabbit_multi.erl
@@ -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}) ->