]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
master: Change stderr to /dev/null just before forking.
authorTimo Sirainen <tss@iki.fi>
Thu, 10 Feb 2011 01:03:28 +0000 (03:03 +0200)
committerTimo Sirainen <tss@iki.fi>
Thu, 10 Feb 2011 01:03:28 +0000 (03:03 +0200)
src/master/main.c

index add90d488dcfea5c6d2c9532187cc44fdf0f61d7..54925e3263551559b588635fb7712952b5b0b7b6 100644 (file)
@@ -771,14 +771,17 @@ int main(int argc, char *argv[])
        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();