From e07ca0e54999e7e09b9c1f73709828ebc1b95e7f Mon Sep 17 00:00:00 2001 From: Vladimir Protasov Date: Thu, 4 Aug 2011 21:26:15 +0400 Subject: Add "reload" command to prosodyctl --- prosodyctl | 23 ++++++++++++++++++++++- util/prosodyctl.lua | 16 ++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/prosodyctl b/prosodyctl index bb90b685..470a7d55 100755 --- a/prosodyctl +++ b/prosodyctl @@ -538,6 +538,27 @@ function commands.about(arg) print(""); end +function commands.reload(arg) + if arg[1] == "--help" then + show_usage([[reload]], [[Reload prosody configuration file]]); + return 1; + end + + if not prosodyctl.isrunning() then + show_message("Prosody is not running"); + return 1; + end + + local ok, ret = prosodyctl.reload(); + if ok then + + show_message("Config updated"); + return 0; + end + + show_message(error_messages[ret]); + return 1; +end -- ejabberdctl compatibility function commands.register(arg) @@ -641,7 +662,7 @@ if not commands[command] then -- Show help for all commands print("Where COMMAND may be one of:\n"); local hidden_commands = require "util.set".new{ "register", "unregister", "addplugin" }; - local commands_order = { "adduser", "passwd", "deluser", "start", "stop", "restart", "about" }; + local commands_order = { "adduser", "passwd", "deluser", "start", "stop", "restart", "reload", "about" }; local done = {}; diff --git a/util/prosodyctl.lua b/util/prosodyctl.lua index aa1850b2..d0045abc 100644 --- a/util/prosodyctl.lua +++ b/util/prosodyctl.lua @@ -238,3 +238,19 @@ function stop() signal.kill(pid, signal.SIGTERM); return true; end + +function reload() + local ok, ret = _M.isrunning(); + if not ok then + return ok, ret; + end + if not ret then + return false, "not-running"; + end + + local ok, pid = _M.getpid() + if not ok then return false, pid; end + + signal.kill(pid, signal.SIGHUP); + return true; +end -- cgit v1.2.3