diff options
author | Matthew Wild <mwild1@gmail.com> | 2009-07-02 04:43:08 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2009-07-02 04:43:08 +0100 |
commit | aa77e7d21a732eef4005f930ca81077bb67153a2 (patch) | |
tree | 4d9567398d424dc6368b01006e3e3b57280fd950 /prosodyctl | |
parent | 0e486fe72b4bc813cc9e7166a041d4294f75a63e (diff) | |
download | prosody-aa77e7d21a732eef4005f930ca81077bb67153a2.tar.gz prosody-aa77e7d21a732eef4005f930ca81077bb67153a2.zip |
prosodyctl: Improve usability with status messages, and waiting up to 5s for the server to start/stop
Diffstat (limited to 'prosodyctl')
-rwxr-xr-x | prosodyctl | 39 |
1 files changed, 37 insertions, 2 deletions
@@ -104,6 +104,7 @@ require "core.eventmanager".fire_event("server-starting"); require "core.modulemanager" require "util.prosodyctl" +require "socket" ----------------------- function show_message(msg, ...) @@ -291,7 +292,24 @@ function commands.start(arg) end local ok, ret = prosodyctl.start(); - if ok then return 0; end + if ok then + local i=1; + while true do + local ok, running = prosodyctl.isrunning(); + if ok and running then + break; + elseif i == 5 then + show_message("Still waiting..."); + elseif i >= 10 then + show_message("Prosody is still not running. Please give it some time or check your log files for errors."); + return 2; + end + socket.sleep(0.5); + i = i + 1; + end + show_message("Started"); + return 0; + end show_message("Failed to start Prosody"); show_message(error_messages[ret]) @@ -344,7 +362,24 @@ function commands.stop(arg) end local ok, ret = prosodyctl.stop(); - if ok then return 0; end + if ok then + local i=1; + while true do + local ok, running = prosodyctl.isrunning(); + if ok and not running then + break; + elseif i == 5 then + show_message("Still waiting..."); + elseif i >= 10 then + show_message("Prosody is still running. Please give it some time or check your log files for errors."); + return 2; + end + socket.sleep(0.5); + i = i + 1; + end + show_message("Stopped"); + return 0; + end show_message(error_messages[ret]); return 1; |