Also shut down when SIGTERM was received
authorest31 <MTest31@outlook.com>
Fri, 24 Jun 2016 18:43:29 +0000 (20:43 +0200)
committerest31 <MTest31@outlook.com>
Fri, 24 Jun 2016 18:43:29 +0000 (20:43 +0200)
Fixes #4251

src/porting.cpp

index 98b85b7d00dcedceab0a2e3b80a9539b786ac591..7ded58b3fe14788a44a534a0c8ea0063c64dd254 100644 (file)
@@ -75,11 +75,16 @@ bool * signal_handler_killstatus(void)
 #if !defined(_WIN32) // POSIX
        #include <signal.h>
 
-void sigint_handler(int sig)
+void signal_handler(int sig)
 {
        if (!g_killed) {
-               dstream << "INFO: sigint_handler(): "
-                       << "Ctrl-C pressed, shutting down." << std::endl;
+               if (sig == SIGINT) {
+                       dstream << "INFO: signal_handler(): "
+                               << "Ctrl-C pressed, shutting down." << std::endl;
+               } else if (sig == SIGTERM) {
+                       dstream << "INFO: signal_handler(): "
+                               << "got SIGTERM, shutting down." << std::endl;
+               }
 
                // Comment out for less clutter when testing scripts
                /*dstream << "INFO: sigint_handler(): "
@@ -88,13 +93,14 @@ void sigint_handler(int sig)
 
                g_killed = true;
        } else {
-               (void)signal(SIGINT, SIG_DFL);
+               (void)signal(sig, SIG_DFL);
        }
 }
 
 void signal_handler_init(void)
 {
-       (void)signal(SIGINT, sigint_handler);
+       (void)signal(SIGINT, signal_handler);
+       (void)signal(SIGTERM, signal_handler);
 }
 
 #else // _WIN32