--- a/plugins/mod_posix.lua Wed Oct 24 19:56:22 2012 +0200
+++ b/plugins/mod_posix.lua Sun Nov 11 23:48:38 2012 +0100
@@ -136,8 +136,17 @@
end
end
+local function remove_log_sinks()
+ local lm = require "core.loggingmanager";
+ lm.register_sink_type("console", nil);
+ lm.register_sink_type("stdout", nil);
+ lm.reload_logging();
+end
+
if daemonize then
local function daemonize_server()
+ module:log("info", "Prosody is about to detach from the console, disabling further console output");
+ remove_log_sinks();
local ok, ret = pposix.daemonize();
if not ok then
module:log("error", "Failed to daemonize: %s", ret);
--- a/util-src/pposix.c Wed Oct 24 19:56:22 2012 +0200
+++ b/util-src/pposix.c Sun Nov 11 23:48:38 2012 +0100
@@ -89,6 +89,10 @@
close(0);
close(1);
close(2);
+ /* Make sure accidental use of FDs 0, 1, 2 don't cause weirdness */
+ open("/dev/null", O_RDONLY);
+ open("/dev/null", O_WRONLY);
+ open("/dev/null", O_WRONLY);
/* Final fork, use it wisely */
if(fork())