componentmanager: Don't error on stanzas to bare component JID
[prosody.git] / plugins / mod_posix.lua
index 87113aace23b78ce4e786f957b67c4506bb0ed83..f8a168f0ad0cf9594ee43c349ed49be038ddbd23 100644 (file)
@@ -14,6 +14,15 @@ local logger_set = require "util.logger".setwriter;
 
 module.host = "*"; -- we're a global module
 
+-- Don't even think about it!
+module:add_event_hook("server-starting", function ()
+               if pposix.getuid() == 0 and not config_get("*", "core", "run_as_root") then
+                       module:log("error", "Danger, Will Robinson! Prosody doesn't need to be run as root, so don't do it!");
+                       module:log("error", "For more information on running Prosody as root, see http://prosody.im/doc/root");
+                       _G.prosody_shutdown("Refusing to run as root");
+               end
+       end);
+
 local pidfile_written;
 
 local function remove_pidfile()
@@ -43,7 +52,6 @@ end
 local syslog_opened 
 function syslog_sink_maker(config)
        if not syslog_opened then
-               print("OPENING SYSLOOOOOOOOOG");
                pposix.syslog_open("prosody");
                syslog_opened = true;
        end
@@ -78,16 +86,18 @@ end
 
 module:add_event_hook("server-stopped", remove_pidfile);
 
--- Set signal handler
+-- Set signal handlers
 if signal.signal then
        signal.signal("SIGTERM", function ()
-               module:log("warn", "Received SIGTERM...");
+               module:log("warn", "Received SIGTERM");
                _G.unlock_globals();
-               if _G.prosody_shutdown then
-                       _G.prosody_shutdown("Received SIGTERM");
-               else
-                       module:log("warn", "...no prosody_shutdown(), ignoring.");
-               end
+               _G.prosody_shutdown("Received SIGTERM");
                _G.lock_globals();
        end);
+
+       signal.signal("SIGHUP", function ()
+               module:log("info", "Received SIGHUP");
+               _G.prosody_reload_config();
+               _G.prosody_reopen_logfiles();
+       end);
 end