Tim Waugh aee6db
--- cups-1.1.21/scheduler/main.c.pid	2004-09-24 11:29:05.073748138 +0100
Tim Waugh aee6db
+++ cups-1.1.21/scheduler/main.c	2004-09-24 11:44:35.826446564 +0100
Tim Waugh aee6db
@@ -349,6 +349,8 @@
Tim Waugh aee6db
     * Setup signal handlers for the parent...
Tim Waugh aee6db
     */
Tim Waugh aee6db
 
Tim Waugh aee6db
+    pid_t pid;
Tim Waugh aee6db
+
Tim Waugh aee6db
 #ifdef HAVE_SIGSET /* Use System V signals over POSIX to avoid bugs */
Tim Waugh aee6db
     sigset(SIGUSR1, parent_handler);
Tim Waugh aee6db
     sigset(SIGCHLD, parent_handler);
Tim Waugh aee6db
@@ -372,7 +374,7 @@
Tim Waugh aee6db
     signal(SIGHUP, SIG_IGN);
Tim Waugh aee6db
 #endif /* HAVE_SIGSET */
Tim Waugh aee6db
 
Tim Waugh aee6db
-    if (fork() > 0)
Tim Waugh aee6db
+    if ((pid = fork()) > 0)
Tim Waugh aee6db
     {
Tim Waugh aee6db
      /*
Tim Waugh aee6db
       * OK, wait for the child to startup and send us SIGUSR1 or to crash
Tim Waugh aee6db
@@ -384,7 +386,15 @@
Tim Waugh aee6db
         sleep(1);
Tim Waugh aee6db
 
Tim Waugh aee6db
       if (parent_signal == SIGUSR1)
Tim Waugh aee6db
+      {
Tim Waugh aee6db
+        FILE *f = fopen ("/var/run/cupsd.pid", "w");
Tim Waugh aee6db
+        if (f)
Tim Waugh aee6db
+        {
Tim Waugh aee6db
+          fprintf (f, "%d\n", pid);
Tim Waugh aee6db
+          fclose (f);
Tim Waugh aee6db
+        }
Tim Waugh aee6db
         return (0);
Tim Waugh aee6db
+      }
Tim Waugh aee6db
 
Tim Waugh aee6db
       if (wait(&i) < 0)
Tim Waugh aee6db
       {