Merge mmap/splice fct. for both consumers
[lttng-tools.git] / src / bin / lttng-consumerd / lttng-consumerd.c
index 9f2f02feba03897b7462de3250c863ec2ec37b55..e5d7ba1c60051aebdd6c1f435b6c692294065e6f 100644 (file)
 
 #include <common/defaults.h>
 #include <common/common.h>
-#include <common/kernel-consumer/kernel-consumer.h>
-#include <common/kernel-ctl/kernel-ctl.h>
+#include <common/consumer.h>
 #include <common/sessiond-comm/sessiond-comm.h>
-#include <common/ust-consumer/ust-consumer.h>
 
 #include "lttng-consumerd.h"
 
@@ -263,11 +261,26 @@ int main(int argc, char **argv)
 
        /* Daemonize */
        if (opt_daemon) {
+               int i;
+
+               /*
+                * fork
+                * child: setsid, close FD 0, 1, 2, chdir /
+                * parent: exit (if fork is successful)
+                */
                ret = daemon(0, 0);
                if (ret < 0) {
-                       perror("daemon");
+                       PERROR("daemon");
                        goto error;
                }
+               /*
+                * We are in the child. Make sure all other file
+                * descriptors are closed, in case we are called with
+                * more opened file descriptors than the standard ones.
+                */
+               for (i = 3; i < sysconf(_SC_OPEN_MAX); i++) {
+                       (void) close(i);
+               }
        }
 
        if (strlen(command_sock_path) == 0) {
This page took 0.026522 seconds and 5 git commands to generate.