Add reopen/close ctl command

This commit is contained in:
turtled 2017-07-06 14:49:17 +08:00
parent a427a53a30
commit 5433af4c92
2 changed files with 33 additions and 1 deletions

View File

@ -477,8 +477,38 @@ listeners([]) ->
end, Info)
end, esockd:listeners());
listeners(["reopen", Proto, ListenOn1]) ->
ListenOn = case string:tokens(ListenOn1, ":") of
[Port] -> list_to_integer(Port);
[IP, Port] -> {IP, list_to_integer(Port)}
end,
case emqttd_app:restart_listener({list_to_atom(Proto), ListenOn, []}) of
{ok, _Pid} ->
io:format("Reopen ~p listen on ~p successfully.~n",
[list_to_atom(Proto), list_to_atom(ListenOn1)]);
{error, Error} ->
io:format("Failed to reopen ~p listen on ~p, error:~p~n",
[list_to_atom(Proto), list_to_atom(ListenOn1) ,Error])
end;
listeners(["close", Proto, ListenOn1]) ->
ListenOn = case string:tokens(ListenOn1, ":") of
[Port] -> list_to_integer(Port);
[IP, Port] -> {IP, list_to_integer(Port)}
end,
case emqttd_app:stop_listener({list_to_atom(Proto), ListenOn, []}) of
ok ->
io:format("Close ~p on ~p successfully.~n",
[list_to_atom(Proto), list_to_atom(ListenOn1)]);
{error, Error} ->
io:format("Failed to close ~p on ~p, error:~p~n",
[list_to_atom(Proto), list_to_atom(ListenOn1) ,Error])
end;
listeners(_) ->
?PRINT_CMD("listeners", "List listeners").
?USAGE([{"listeners", "List listeners"},
{"listeners reopen <Proto> <Port>", "Reopen a listener port"},
{"listeners close <Proto> <Port>", "Close a listener port"}]).
%%--------------------------------------------------------------------
%% Dump ETS

View File

@ -75,6 +75,8 @@ run([CmdS|Args]) ->
_ -> ok
catch
_:Reason ->
io:format("Reason:~p, get_stacktrace:~p~n",
[Reason, erlang:get_stacktrace()]),
{error, Reason}
end;
[] ->