summaryrefslogtreecommitdiff
path: root/src
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 /src
parent0296a452b916f8ec93e5893fda5dd66e8b4930d3 (diff)
downloadrabbitmq-server-63c4c3994f96993ea29f83588030568a8143f944.tar.gz
Consistent prelaunch checks on windows
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_prelaunch.erl21
1 files changed, 18 insertions, 3 deletions
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.
+