Software / code / prosody
Comparison
prosodyctl @ 1458:fce75b4efda9
prosodyctl: Improve usability with status messages, and waiting up to 5s for the server to start/stop
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 02 Jul 2009 04:43:08 +0100 |
| parent | 1390:ef672c9fe7c9 |
| child | 1459:545208bc0e84 |
comparison
equal
deleted
inserted
replaced
| 1457:4723bd466a54 | 1458:fce75b4efda9 |
|---|---|
| 102 require "core.hostmanager" | 102 require "core.hostmanager" |
| 103 require "core.eventmanager".fire_event("server-starting"); | 103 require "core.eventmanager".fire_event("server-starting"); |
| 104 require "core.modulemanager" | 104 require "core.modulemanager" |
| 105 | 105 |
| 106 require "util.prosodyctl" | 106 require "util.prosodyctl" |
| 107 require "socket" | |
| 107 ----------------------- | 108 ----------------------- |
| 108 | 109 |
| 109 function show_message(msg, ...) | 110 function show_message(msg, ...) |
| 110 print(msg:format(...)); | 111 print(msg:format(...)); |
| 111 end | 112 end |
| 289 show_message("Prosody is already running with PID %s", ret or "(unknown)"); | 290 show_message("Prosody is already running with PID %s", ret or "(unknown)"); |
| 290 return 1; | 291 return 1; |
| 291 end | 292 end |
| 292 | 293 |
| 293 local ok, ret = prosodyctl.start(); | 294 local ok, ret = prosodyctl.start(); |
| 294 if ok then return 0; end | 295 if ok then |
| 296 local i=1; | |
| 297 while true do | |
| 298 local ok, running = prosodyctl.isrunning(); | |
| 299 if ok and running then | |
| 300 break; | |
| 301 elseif i == 5 then | |
| 302 show_message("Still waiting..."); | |
| 303 elseif i >= 10 then | |
| 304 show_message("Prosody is still not running. Please give it some time or check your log files for errors."); | |
| 305 return 2; | |
| 306 end | |
| 307 socket.sleep(0.5); | |
| 308 i = i + 1; | |
| 309 end | |
| 310 show_message("Started"); | |
| 311 return 0; | |
| 312 end | |
| 295 | 313 |
| 296 show_message("Failed to start Prosody"); | 314 show_message("Failed to start Prosody"); |
| 297 show_message(error_messages[ret]) | 315 show_message(error_messages[ret]) |
| 298 return 1; | 316 return 1; |
| 299 end | 317 end |
| 342 show_message("Prosody is not running"); | 360 show_message("Prosody is not running"); |
| 343 return 1; | 361 return 1; |
| 344 end | 362 end |
| 345 | 363 |
| 346 local ok, ret = prosodyctl.stop(); | 364 local ok, ret = prosodyctl.stop(); |
| 347 if ok then return 0; end | 365 if ok then |
| 366 local i=1; | |
| 367 while true do | |
| 368 local ok, running = prosodyctl.isrunning(); | |
| 369 if ok and not running then | |
| 370 break; | |
| 371 elseif i == 5 then | |
| 372 show_message("Still waiting..."); | |
| 373 elseif i >= 10 then | |
| 374 show_message("Prosody is still running. Please give it some time or check your log files for errors."); | |
| 375 return 2; | |
| 376 end | |
| 377 socket.sleep(0.5); | |
| 378 i = i + 1; | |
| 379 end | |
| 380 show_message("Stopped"); | |
| 381 return 0; | |
| 382 end | |
| 348 | 383 |
| 349 show_message(error_messages[ret]); | 384 show_message(error_messages[ret]); |
| 350 return 1; | 385 return 1; |
| 351 end | 386 end |
| 352 | 387 |