summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@lshift.net>2008-09-11 18:00:29 +0100
committerMatthias Radestock <matthias@lshift.net>2008-09-11 18:00:29 +0100
commit54032ca82e19b0c27b5f4257fb5cfd3b44636510 (patch)
treee65165931a7cfad42de3f4cb259311ddf736fb4a
parent131d39c9cb519a4fb90cca04bdc71721a47a4679 (diff)
parenta129a035ab0161c5c06243b20889388a58e6f55f (diff)
downloadrabbitmq-server-git-54032ca82e19b0c27b5f4257fb5cfd3b44636510.tar.gz
merge bug19164 into default
-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.erl13
4 files changed, 142 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..c6a7e9200d 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,18 @@ 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}) ->
+ Status = rpc:call(Node, rabbit, status, [], RpcTimeout),
+ io:format("Node '~p' with Pid ~p: ~p~n",
+ [Node, Pid, case parse_status(Status) of
+ false -> not_running;
+ true -> running
+ end])
+ end);
+
action(stop_all, [], RpcTimeout) ->
io:format("Stopping all nodes...~n", []),
call_all_nodes(fun({Node, Pid}) ->