only fork one to assist in stop-start-daemon assumptions about daemon behavior

http://bugs.gentoo.org/190785

diff -durN glibc-2.10.1.orig/nscd/nscd.c glibc-2.10.1/nscd/nscd.c
--- glibc-2.10.1.orig/nscd/nscd.c	2009-02-06 21:10:27.000000000 +0100
+++ glibc-2.10.1/nscd/nscd.c	2009-11-13 00:50:24.000000000 +0100
@@ -182,6 +182,9 @@
       if (pid != 0)
 	exit (0);
 
+       if (write_pid (_PATH_NSCDPID) < 0)
+	dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno));
+
       int nullfd = open (_PATH_DEVNULL, O_RDWR);
       if (nullfd != -1)
 	{
@@ -231,12 +234,6 @@
 	for (i = min_close_fd; i < getdtablesize (); i++)
 	  close (i);
 
-      pid = fork ();
-      if (pid == -1)
-	error (EXIT_FAILURE, errno, _("cannot fork"));
-      if (pid != 0)
-	exit (0);
-
       setsid ();
 
       if (chdir ("/") != 0)
@@ -245,9 +242,6 @@
 
       openlog ("nscd", LOG_CONS | LOG_ODELAY, LOG_DAEMON);
 
-      if (write_pid (_PATH_NSCDPID) < 0)
-        dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno));
-
       if (!init_logfile ())
 	dbg_log (_("Could not create log file"));
 
