summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Watson <tim@rabbitmq.com>2012-05-15 16:20:30 +0100
committerTim Watson <tim@rabbitmq.com>2012-05-15 16:20:30 +0100
commit841d204c29986228b3af7382a0e2b5e8922a2ea3 (patch)
tree60b84f0de412c2436f922644c581932bd1556aff
parent9194ab8cba39c7aec312ec7e9ff0eea3a6744af6 (diff)
downloadrabbitmq-server-git-841d204c29986228b3af7382a0e2b5e8922a2ea3.tar.gz
rabbit_control waits as long as process is alive
-rwxr-xr-xscripts/rabbitmq-server25
-rwxr-xr-xscripts/rabbitmq-server.bat14
-rw-r--r--src/rabbit_control.erl6
3 files changed, 23 insertions, 22 deletions
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server
index 57f37ff9be..ba18766c95 100755
--- a/scripts/rabbitmq-server
+++ b/scripts/rabbitmq-server
@@ -70,18 +70,15 @@ case "$(uname -s)" in
esac
RABBITMQ_EBIN_ROOT="${RABBITMQ_HOME}/ebin"
-if erl \
- -pa "$RABBITMQ_EBIN_ROOT" \
- -noinput \
- -hidden \
- -s rabbit_prelaunch \
- -sname rabbitmqprelaunch$$ \
- -extra "${RABBITMQ_NODENAME}"
-then
- RABBITMQ_BOOT_FILE=start_sasl
- RABBITMQ_EBIN_PATH="-pa ${RABBITMQ_EBIN_ROOT}"
-else
- exit 1
+if ! `erl \
+ -pa "$RABBITMQ_EBIN_ROOT" \
+ -noinput \
+ -hidden \
+ -s rabbit_prelaunch \
+ -sname rabbitmqprelaunch$$ \
+ -extra "${RABBITMQ_NODENAME}"`;
+ then
+ exit 1;
fi
RABBITMQ_CONFIG_ARG=
@@ -96,10 +93,10 @@ RABBITMQ_LISTEN_ARG=
set -f
exec erl \
- ${RABBITMQ_EBIN_PATH} \
+ -pa ${RABBITMQ_EBIN_ROOT} \
${RABBITMQ_START_RABBIT} \
-sname ${RABBITMQ_NODENAME} \
- -boot ${RABBITMQ_BOOT_FILE} \
+ -boot start_sasl \
-s rabbit boot \
${RABBITMQ_CONFIG_ARG} \
+W w \
diff --git a/scripts/rabbitmq-server.bat b/scripts/rabbitmq-server.bat
index e594522df3..58f085af1d 100755
--- a/scripts/rabbitmq-server.bat
+++ b/scripts/rabbitmq-server.bat
@@ -89,12 +89,14 @@ if "!RABBITMQ_ENABLED_PLUGINS_FILE!"=="" (
set RABBITMQ_PLUGINS_DIR=!TDP0!..\plugins
set RABBITMQ_EBIN_ROOT=!TDP0!..\ebin
-"!ERLANG_HOME!\bin\erl.exe" ^
--pa "!RABBITMQ_EBIN_ROOT!" ^
--noinput -hidden ^
--s rabbit_prelaunch ^
--sname rabbitmqprelaunch!RANDOM! ^
--extra "!RABBITMQ_NODENAME!"
+if not "!ERLANG_HOME!\bin\erl.exe" ^
+ -pa "!RABBITMQ_EBIN_ROOT!" ^
+ -noinput -hidden ^
+ -s rabbit_prelaunch ^
+ -sname rabbitmqprelaunch!RANDOM! ^
+ -extra "!RABBITMQ_NODENAME!" (
+ exit /B
+)
set RABBITMQ_EBIN_PATH="-pa !RABBITMQ_EBIN_ROOT!"
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl
index d9b2ae97b4..59df82b323 100644
--- a/src/rabbit_control.erl
+++ b/src/rabbit_control.erl
@@ -408,8 +408,10 @@ wait_for_application(Node, PidFile, Application, Inform) ->
wait_for_application(Node, Pid, Application) ->
case process_up(Pid) of
true -> case rpc:call(Node, rabbit, await_startup, []) of
- {badrpc, _} -> {error, node_not_responding};
- ok -> ok
+ ok -> ok;
+ Other -> timer:sleep(?EXTERNAL_CHECK_INTERVAL),
+ wait_for_application(Node, Pid,
+ Application)
end;
false -> {error, process_not_running}
end.