[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |