vlib: leave SIGPROF signal with its default handler
[vpp.git] / src / vlib / unix / main.c
index f306b2e..90601d7 100755 (executable)
@@ -180,7 +180,11 @@ unix_signal_handler (int signum, siginfo_t * si, ucontext_t * uc)
       /* have to remove SIGABRT to avoid recursive - os_exit calling abort() */
       unsetup_signal_handlers (SIGABRT);
 
-      os_exit (1);
+      /* os_exit(1) causes core generation, do not do this for SIGINT */
+      if (signum == SIGINT)
+       os_exit (0);
+      else
+       os_exit (1);
     }
   else
     clib_warning ("%s", syslog_msg);
@@ -209,6 +213,7 @@ setup_signal_handlers (unix_main_t * um)
        case SIGSTOP:
        case SIGUSR1:
        case SIGUSR2:
+       case SIGPROF:
          continue;
 
          /* ignore SIGPIPE, SIGCHLD */
@@ -372,6 +377,7 @@ VLIB_REGISTER_NODE (startup_config_node,static) = {
     .function = startup_config_process,
     .type = VLIB_NODE_TYPE_PROCESS,
     .name = "startup-config-process",
+    .process_log2_n_stack_bytes = 18,
 };
 /* *INDENT-ON* */
 
@@ -680,6 +686,8 @@ vlib_unix_main (int argc, char *argv[])
     (((uword) vm->heap_base) & ~(VLIB_FRAME_ALIGN - 1));
   ASSERT (vm->heap_base);
 
+  clib_time_init (&vm->clib_time);
+
   unformat_init_command_line (&input, (char **) vm->argv);
   if ((e = vlib_plugin_config (vm, &input)))
     {