diff options
author | Emile Joubert <emile@rabbitmq.com> | 2010-12-03 11:13:14 +0000 |
---|---|---|
committer | Emile Joubert <emile@rabbitmq.com> | 2010-12-03 11:13:14 +0000 |
commit | 63c4c3994f96993ea29f83588030568a8143f944 (patch) | |
tree | f3b4c53c23b592ea9c6832a9de3bc62bc846e8aa /src | |
parent | 0296a452b916f8ec93e5893fda5dd66e8b4930d3 (diff) | |
download | rabbitmq-server-63c4c3994f96993ea29f83588030568a8143f944.tar.gz |
Consistent prelaunch checks on windows
Diffstat (limited to 'src')
-rw-r--r-- | src/rabbit_prelaunch.erl | 21 |
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. + |