vlib: exit 0 (nocore) on SIGHUP
[vpp.git] / src / vlib / unix / main.c
old mode 100755 (executable)
new mode 100644 (file)
index 0f9068c..95aeecf
@@ -180,8 +180,8 @@ 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) causes core generation, do not do this for SIGINT */
-      if (signum == SIGINT)
+      /* os_exit(1) causes core generation, skip that for SIGINT, SIGHUP */
+      if (signum == SIGINT || signum == SIGHUP)
        os_exit (0);
       else
        os_exit (1);
@@ -654,6 +654,8 @@ thread0 (uword arg)
   unformat_input_t input;
   int i;
 
+  vlib_process_finish_switch_stack (vm);
+
   unformat_init_command_line (&input, (char **) vm->argv);
   i = vlib_main (vm, &input);
   unformat_free (&input);
@@ -727,6 +729,7 @@ vlib_unix_main (int argc, char *argv[])
   __os_thread_index = 0;
   vm->thread_index = 0;
 
+  vlib_process_start_switch_stack (vm, 0);
   i = clib_calljmp (thread0, (uword) vm,
                    (void *) (vlib_thread_stacks[0] +
                              VLIB_THREAD_STACK_SIZE));