[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 1/3] xenstored - postpone fork after initialization



# HG changeset patch
# User Bastian Blank <waldi@xxxxxxxxxx>
# Date 1206528849 -3600
# Node ID 5e0412c5f5798b5c0acdd4057c91b3820d6c4afd
# Parent  f5e6cccfdda5537876d6fc2b87ea1124d6043fc8
Postpone fork after initialization.

Signed-off-by: Bastian Blank <waldi@xxxxxxxxxx>

diff -r f5e6cccfdda5 -r 5e0412c5f579 tools/xenstore/xenstored_core.c
--- a/tools/xenstore/xenstored_core.c   Tue Mar 25 18:02:00 2008 +0000
+++ b/tools/xenstore/xenstored_core.c   Wed Mar 26 11:54:09 2008 +0100
@@ -1839,13 +1839,6 @@ int main(int argc, char *argv[])
                }
        }
 
-       if (dofork) {
-               openlog("xenstored", 0, LOG_DAEMON);
-               daemonize();
-       }
-       if (pidfile)
-               write_pidfile(pidfile);
-
        /* Talloc leak reports go to stderr, which is closed if we fork. */
        if (!dofork)
                talloc_enable_leak_report_full();
@@ -1899,22 +1892,30 @@ int main(int argc, char *argv[])
        /* Restore existing connections. */
        restore_existing_connections();
 
-       if (outputpid) {
-               printf("%ld\n", (long)getpid());
-               fflush(stdout);
-       }
-
        /* redirect to /dev/null now we're ready to accept connections */
        if (dofork) {
                int devnull = open("/dev/null", O_RDWR);
                if (devnull == -1)
                        barf_perror("Could not open /dev/null\n");
+
+               openlog("xenstored", 0, LOG_DAEMON);
+
+               daemonize();
+
+               if (outputpid) {
+                       printf("%ld\n", (long)getpid());
+                       fflush(stdout);
+               }
+
                dup2(devnull, STDIN_FILENO);
                dup2(devnull, STDOUT_FILENO);
                dup2(devnull, STDERR_FILENO);
                close(devnull);
                xprintf = trace;
        }
+
+       if (pidfile)
+               write_pidfile(pidfile);
 
        signal(SIGHUP, trigger_reopen_log);
 
-- 
History tends to exaggerate.
                -- Col. Green, "The Savage Curtain", stardate 5906.4

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.