summaryrefslogtreecommitdiff
path: root/src/rabbit.erl
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2013-02-15 11:26:39 +0000
committerEmile Joubert <emile@rabbitmq.com>2013-02-15 11:26:39 +0000
commit54d8919bebeef38d0e11e2e429388432706ee097 (patch)
tree149c1d12c4fe4f5dbca959480d702044e5401225 /src/rabbit.erl
parentd26fd217e64a1f28a4a4e5667c13c3d7c21fe7d9 (diff)
parent4451bd6ab8050c9b401c8a49b794ff704495a19d (diff)
downloadrabbitmq-server-git-54d8919bebeef38d0e11e2e429388432706ee097.tar.gz
Merged bug25247
Diffstat (limited to 'src/rabbit.erl')
-rw-r--r--src/rabbit.erl22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 55736b287e..4487f07c25 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -355,6 +355,8 @@ handle_app_error(App, Reason) ->
throw({could_not_start, App, Reason}).
start_it(StartFun) ->
+ Marker = spawn_link(fun() -> receive stop -> ok end end),
+ register(rabbit_boot, Marker),
try
StartFun()
catch
@@ -363,11 +365,17 @@ start_it(StartFun) ->
_:Reason ->
boot_error(Reason, erlang:get_stacktrace())
after
+ unlink(Marker),
+ Marker ! stop,
%% give the error loggers some time to catch up
timer:sleep(100)
end.
stop() ->
+ case whereis(rabbit_boot) of
+ undefined -> ok;
+ _ -> await_startup()
+ end,
rabbit_log:info("Stopping RabbitMQ~n"),
ok = app_utils:stop_applications(app_shutdown_order()).
@@ -719,13 +727,13 @@ erts_version_check() ->
print_banner() ->
{ok, Product} = application:get_key(id),
{ok, Version} = application:get_key(vsn),
- io:format("~n## ## ~s ~s. ~s"
- "~n## ## ~s"
- "~n##########"
- "~n###### ## Logs: ~s"
- "~n########## ~s"
- "~n"
- "~n Starting broker...",
+ io:format("~n ~s ~s. ~s"
+ "~n ## ## ~s"
+ "~n ## ##"
+ "~n ########## Logs: ~s"
+ "~n ###### ## ~s"
+ "~n ##########"
+ "~n Starting broker...",
[Product, Version, ?COPYRIGHT_MESSAGE, ?INFORMATION_MESSAGE,
log_location(kernel), log_location(sasl)]).