Merge 0.9 -> trunk
authorKim Alvefur <zash@zash.se>
Sun, 11 Nov 2012 23:48:38 +0100
changeset 5178 fa6d61f2fe20
parent 5174 42765c80244c (current diff)
parent 5177 add9ad38208e (diff)
child 5182 9b93b0698d7e
Merge 0.9 -> trunk
--- 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())