feat(nodetool): print shutdown status messages while EMQX is stopping
This commit is contained in:
parent
9de9631d6b
commit
9b3f88aeeb
17
bin/nodetool
17
bin/nodetool
|
@ -87,7 +87,10 @@ do(Args) ->
|
||||||
%% a "pong"
|
%% a "pong"
|
||||||
io:format("pong\n");
|
io:format("pong\n");
|
||||||
["stop"] ->
|
["stop"] ->
|
||||||
case rpc:call(TargetNode, emqx_machine, graceful_shutdown, [], ?SHUTDOWN_TIMEOUT_MS) of
|
Pid = start_shutdown_status(),
|
||||||
|
Res = rpc:call(TargetNode, emqx_machine, graceful_shutdown, [], ?SHUTDOWN_TIMEOUT_MS),
|
||||||
|
true = stop_shutdown_status(Pid),
|
||||||
|
case Res of
|
||||||
ok ->
|
ok ->
|
||||||
ok;
|
ok;
|
||||||
{badrpc, timeout} ->
|
{badrpc, timeout} ->
|
||||||
|
@ -152,6 +155,18 @@ do(Args) ->
|
||||||
end,
|
end,
|
||||||
net_kernel:stop().
|
net_kernel:stop().
|
||||||
|
|
||||||
|
start_shutdown_status() ->
|
||||||
|
spawn_link(fun shutdown_status_loop/0).
|
||||||
|
|
||||||
|
stop_shutdown_status(Pid) ->
|
||||||
|
true = unlink(Pid),
|
||||||
|
true = exit(Pid, stop).
|
||||||
|
|
||||||
|
shutdown_status_loop() ->
|
||||||
|
timer:sleep(10_000),
|
||||||
|
io:format("EMQX is shutting down, please wait...\n", []),
|
||||||
|
shutdown_status_loop().
|
||||||
|
|
||||||
parse_eval_args(Args) ->
|
parse_eval_args(Args) ->
|
||||||
% shells may process args into more than one, and end up stripping
|
% shells may process args into more than one, and end up stripping
|
||||||
% spaces, so this converts all of that to a single string to parse
|
% spaces, so this converts all of that to a single string to parse
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
Improve EMQX graceful shutdown (`emqx stop` command):
|
Improve EMQX graceful shutdown (`emqx stop` command):
|
||||||
- increase timeout from 1 to 2 minutes
|
- increase timeout from 1 to 2 minutes
|
||||||
- print an error message if EMQX can't stop gracefully within the configured timeout
|
- print an error message if EMQX can't stop gracefully within the configured timeout
|
||||||
|
- print periodic status messages while EMQX is shutting down
|
||||||
|
|
Loading…
Reference in New Issue