diff options
author | Hubert Plociniczak <hubert@lshift.net> | 2008-09-11 14:10:14 +0100 |
---|---|---|
committer | Hubert Plociniczak <hubert@lshift.net> | 2008-09-11 14:10:14 +0100 |
commit | 3a7ab39ddeea3cc9f2bc9f3d1bfdb79387f88e24 (patch) | |
tree | 10299a9216c7778072cd238cf3276ebce2e9f452 | |
parent | 5006410501ef681d744697c30516e7c91d0fb97c (diff) | |
download | rabbitmq-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.pod | 3 | ||||
-rw-r--r-- | packaging/RPMS/Fedora/init.d | 99 | ||||
-rw-r--r-- | packaging/debs/Debian/debian/init.d | 108 | ||||
-rw-r--r-- | src/rabbit_multi.erl | 12 |
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}) -> |