aboutsummaryrefslogtreecommitdiffstats
path: root/prosodyctl
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2009-07-02 04:43:08 +0100
committerMatthew Wild <mwild1@gmail.com>2009-07-02 04:43:08 +0100
commitaa77e7d21a732eef4005f930ca81077bb67153a2 (patch)
tree4d9567398d424dc6368b01006e3e3b57280fd950 /prosodyctl
parent0e486fe72b4bc813cc9e7166a041d4294f75a63e (diff)
downloadprosody-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-xprosodyctl39
1 files changed, 37 insertions, 2 deletions
diff --git a/prosodyctl b/prosodyctl
index 642b12b8..0ddc6bcf 100755
--- a/prosodyctl
+++ b/prosodyctl
@@ -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;