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
commit3a7ab39ddeea3cc9f2bc9f3d1bfdb79387f88e24 (patch)
tree10299a9216c7778072cd238cf3276ebce2e9f452
parent5006410501ef681d744697c30516e7c91d0fb97c (diff)
downloadrabbitmq-server-3a7ab39ddeea3cc9f2bc9f3d1bfdb79387f88e24.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 7916fc78..65d05833 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 d699f9b6..397beeaa 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 da9d70f2..a93f3066 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 2b117717..9373e8cb 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}) ->