Ignore first SIGINT
[lttng-tools.git] / kconsumerd / kconsumerd.c
index f0ccb8c9e797a049141a1ba0fc131f70fe6d3197..adc1f1beddeb79b68796258289cea9edf2e532e1 100644 (file)
@@ -67,6 +67,9 @@ static int poll_pipe[2];
 /* socket to communicate errors with sessiond */
 static int error_socket = -1;
 
+/* to count the number of time the user pressed ctrl+c */
+static int sigintcount = 0;
+
 /* Argument variables */
 int opt_quiet;
 int opt_verbose;
@@ -156,7 +159,7 @@ static int add_fd(struct lttcomm_kconsumerd_msg *buf, int consumerd_fd)
        /* Opening the tracefile in write mode */
        DBG("Opening %s for writing", tmp_fd->path_name);
        ret = open(tmp_fd->path_name,
-                       O_WRONLY|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO);
+                       O_WRONLY|O_CREAT|O_TRUNC, S_IRWXU|S_IRWXG|S_IRWXO);
        if (ret < 0) {
                ERR("Opening %s", tmp_fd->path_name);
                perror("open");
@@ -185,6 +188,11 @@ end:
  */
 static void sighandler(int sig)
 {
+       if (sig == SIGINT && sigintcount++ == 0) {
+               DBG("ignoring first SIGINT");
+               return;
+       }
+
        cleanup();
 
        return;
This page took 0.023356 seconds and 4 git commands to generate.