changeset 12729:08e4280e5bfd

master: Change stderr to /dev/null just before forking.
author Timo Sirainen <tss@iki.fi>
date Thu, 10 Feb 2011 03:03:28 +0200
parents 079a81fb5117
children 723a26a7d328
files src/master/main.c
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/master/main.c	Thu Feb 10 02:51:22 2011 +0200
+++ b/src/master/main.c	Thu Feb 10 03:03:28 2011 +0200
@@ -771,14 +771,17 @@
 	if (services_listen(services) <= 0)
 		i_fatal("Failed to start listeners");
 
-	if (!foreground)
-		daemonize();
 	if (chdir(set->base_dir) < 0)
 		i_fatal("chdir(%s) failed: %m", set->base_dir);
 
+	if (dup2(null_fd, STDERR_FILENO) < 0)
+		i_fatal("dup2(null_fd) failed: %m");
 	i_set_fatal_handler(master_fatal_callback);
 	i_set_error_handler(orig_error_callback);
 
+	if (!foreground)
+		daemonize();
+
 	main_init(set);
 	master_service_run(master_service, NULL);
 	main_deinit();