WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH 1/3] xenstored - postpone fork after initialization
From: Bastian Blank <bastian@xxxxxxxxxxxx>
Date: Wed, 26 Mar 2008 12:00:16 +0100
Delivery-date: Wed, 26 Mar 2008 04:00:37 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.13 (2006-08-11)
# 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