Browse Source

Create daemon on first call

Yannick Ulrich 3 years ago
parent
commit
c13d2d964d
1 changed files with 13 additions and 2 deletions
  1. 13 2
      main.c

+ 13 - 2
main.c

@@ -104,6 +104,15 @@ listen_and_convert()
     unsigned int clilen;
     struct Job job;
 
+    pid_t child_pid = fork();
+    if (child_pid < 0) {
+        err("fork failed");
+    } else if (child_pid > 0) {
+        usleep(1000000);
+        // parent process
+        return 1;
+    }
+
     clilen = sizeof(cli_addr);
 
     postprocess_setup();
@@ -151,7 +160,6 @@ main(int argc, char *argv[])
 
     if (argc != 4) {
         printf("usage: %s burst-dir target-name save-dng\n", argv[0]);
-        listen_and_convert();
         exit(1);
     }
 
@@ -166,7 +174,10 @@ main(int argc, char *argv[])
         job.savedng = 1;
     }
 
-    queue_job(job);
+    if(queue_job(job)) return 0;
+
+    if(listen_and_convert())
+        queue_job(job);
 
     return 0;
 }