summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2010-12-03 11:13:14 +0000
committerEmile Joubert <emile@rabbitmq.com>2010-12-03 11:13:14 +0000
commit63c4c3994f96993ea29f83588030568a8143f944 (patch)
treef3b4c53c23b592ea9c6832a9de3bc62bc846e8aa
parent0296a452b916f8ec93e5893fda5dd66e8b4930d3 (diff)
downloadrabbitmq-server-63c4c3994f96993ea29f83588030568a8143f944.tar.gz
Consistent prelaunch checks on windows
-rw-r--r--scripts/rabbitmq-server.bat3
-rw-r--r--src/rabbit_prelaunch.erl21
2 files changed, 19 insertions, 5 deletions
diff --git a/scripts/rabbitmq-server.bat b/scripts/rabbitmq-server.bat
index f972a4aa..872c87e3 100644
--- a/scripts/rabbitmq-server.bat
+++ b/scripts/rabbitmq-server.bat
@@ -123,8 +123,7 @@ set RABBITMQ_EBIN_ROOT=!TDP0!..\ebin
"!RABBITMQ_NODENAME!"
set RABBITMQ_BOOT_FILE=!RABBITMQ_PLUGINS_EXPAND_DIR!\rabbit
-if not exist "!RABBITMQ_BOOT_FILE!.boot" (
- echo Custom Boot File "!RABBITMQ_BOOT_FILE!.boot" is missing.
+if ERRORLEVEL 1 (
exit /B 1
)
diff --git a/src/rabbit_prelaunch.erl b/src/rabbit_prelaunch.erl
index b37573dd..35cc79d4 100644
--- a/src/rabbit_prelaunch.erl
+++ b/src/rabbit_prelaunch.erl
@@ -34,6 +34,7 @@
-export([start/0, stop/0]).
-define(BaseApps, [rabbit]).
+-define(ERROR_CODE, 1).
%%----------------------------------------------------------------------------
%% Specs
@@ -135,14 +136,16 @@ start() ->
case net_kernel:start([list_to_atom(NodeName), shortnames]) of
{ok, _Pid} -> ok = net_kernel:stop();
{error, Result} ->
+ % consistent layout by flushing error_log mailbox
+ gen_event:which_handlers(error_logger),
io:format("starting node with name ~p failed. "
"(is RabbitMQ already running?)~n~p~n",
[NodeName, Result]),
[io:format(Fmt ++ "~n", Args) ||
{Fmt, Args} <- rabbit_control:diagnostics(NodeName)],
- halt(1)
+ terminate(?ERROR_CODE)
end,
- halt(),
+ terminate(0),
ok.
stop() ->
@@ -265,4 +268,16 @@ process_entry(Entry) ->
terminate(Fmt, Args) ->
io:format("ERROR: " ++ Fmt ++ "~n", Args),
- halt(1).
+ terminate(?ERROR_CODE).
+
+terminate(Status) ->
+ case os:type() of
+ {unix, _} ->
+ halt(Status);
+ {win32, _} ->
+ init:stop(Status),
+ receive
+ after infinity -> ok
+ end
+ end.
+