examples/kni: add SIGTERM signal handling
authorVamsi Attunuru <vattunuru@marvell.com>
Thu, 6 Feb 2020 11:53:57 +0000 (17:23 +0530)
committerDavid Marchand <david.marchand@redhat.com>
Thu, 13 Feb 2020 17:27:44 +0000 (18:27 +0100)
SIGTERM handling is added for graceful application exit.
Useful when application is terminated without specifying
any signal on 'kill' command.

Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
examples/kni/main.c

index 5f713e6..29fc37e 100644 (file)
@@ -176,9 +176,13 @@ signal_handler(int signum)
                return;
        }
 
-       /* When we receive a RTMIN or SIGINT signal, stop kni processing */
-       if (signum == SIGRTMIN || signum == SIGINT){
-               printf("\nSIGRTMIN/SIGINT received. KNI processing stopping.\n");
+       /*
+        * When we receive a RTMIN or SIGINT or SIGTERM signal,
+        * stop kni processing
+        */
+       if (signum == SIGRTMIN || signum == SIGINT || signum == SIGTERM) {
+               printf("\nSIGRTMIN/SIGINT/SIGTERM received. "
+                       "KNI processing stopping.\n");
                rte_atomic32_inc(&kni_stop);
                return;
         }
@@ -1006,6 +1010,7 @@ main(int argc, char** argv)
        signal(SIGUSR2, signal_handler);
        signal(SIGRTMIN, signal_handler);
        signal(SIGINT, signal_handler);
+       signal(SIGTERM, signal_handler);
 
        /* Initialise EAL */
        ret = rte_eal_init(argc, argv);