Log fast-ramp queue-run trigger
[exim.git] / src / src / daemon.c
index 2813a50d1b262f430151c3d2fdf045a43a14d3e5..3b21d272badc0789ab7155f52d91c5e110856b7b 100644 (file)
@@ -367,7 +367,7 @@ if (LOGGING(smtp_connection))
 expansion above did a lookup. */
 
 search_tidyup();
-pid = fork();
+pid = exim_fork(US"daemon-accept");
 
 /* Handle the child process */
 
@@ -663,7 +663,7 @@ if (pid == 0)
 
       mac_smtp_fflush();
 
-      if ((dpid = fork()) == 0)
+      if ((dpid = exim_fork(US"daemon-accept-delivery")) == 0)
         {
         (void)fclose(smtp_in);
         (void)fclose(smtp_out);
@@ -954,7 +954,7 @@ else
   DEBUG(D_any)
     debug_printf("%s\n", string_open_failed(errno, "pid file %s",
       pid_file_path));
-exim_exit(EXIT_SUCCESS, US"pid file remover");
+exim_exit(EXIT_SUCCESS);
 }
 
 
@@ -981,7 +981,7 @@ if (daemon_notifier_fd >= 0)
 
 if (f.running_in_test_harness || write_pid)
   {
-  if ((pid = fork()) == 0)
+  if ((pid = exim_fork(US"daemon-del-pidfile")) == 0)
     {
     if (override_pid_file_path)
       (void)child_exec_exim(CEE_EXEC_PANIC, FALSE, NULL, FALSE, 3,
@@ -994,7 +994,7 @@ if (f.running_in_test_harness || write_pid)
   if (pid > 0)
     child_close(pid, 1);
   }
-exim_exit(EXIT_SUCCESS, US"daemon");
+exim_exit(EXIT_SUCCESS);
 }
 
 
@@ -1200,6 +1200,8 @@ ip_address_item *addresses = NULL;
 time_t last_connection_time = (time_t)0;
 int local_queue_run_max = atoi(CS expand_string(queue_run_max));
 
+process_purpose = US"daemon";
+
 /* If any debugging options are set, turn on the D_pid bit so that all
 debugging lines get the pid added. */
 
@@ -1601,7 +1603,7 @@ if (f.background_daemon)
 
   if (getppid() != 1)
     {
-    pid_t pid = fork();
+    pid_t pid = exim_fork(US"daemon");
     if (pid < 0) log_write(0, LOG_MAIN|LOG_PANIC_DIE,
       "fork() failed when starting daemon: %s", strerror(errno));
     if (pid > 0) exit(EXIT_SUCCESS);      /* in parent process, just exit */
@@ -2127,14 +2129,11 @@ for (;;)
       have enough queue runners on the go. If we are not running as root, a
       re-exec is required. */
 
-      if (queue_interval > 0 &&
-         (local_queue_run_max <= 0 || queue_run_count < local_queue_run_max))
+      if (  queue_interval > 0
+         && (local_queue_run_max <= 0 || queue_run_count < local_queue_run_max))
         {
-        if ((pid = fork()) == 0)
+        if ((pid = exim_fork(US"queue-runner")) == 0)
           {
-          DEBUG(D_any) debug_printf("Starting queue-runner: pid %d\n",
-            (int)getpid());
-
           /* Disable debugging if it's required only for the daemon process. We
           leave the above message, because it ties up with the "child ended"
           debugging messages. */
@@ -2181,6 +2180,7 @@ for (;;)
 #ifdef EXPERIMENTAL_QUEUE_RAMP
            if (*queuerun_msgid)
              {
+             log_write(0, LOG_MAIN, "notify triggered queue run");
              extra[extracount++] = queuerun_msgid;     /* Trigger only the */
              extra[extracount++] = queuerun_msgid;     /* one message      */
              }
@@ -2215,6 +2215,7 @@ for (;;)
 #ifdef EXPERIMENTAL_QUEUE_RAMP
          if (*queuerun_msgid)
            {
+           log_write(0, LOG_MAIN, "notify triggered queue run");
            f.queue_2stage = FALSE;
            queue_run(queuerun_msgid, queuerun_msgid, FALSE);
            }