]> granicus.if.org Git - pdns/commitdiff
Only register our handler when we're pid 1, and change to doExit()
authorFrank Louwers <frank@louwers.be>
Thu, 26 Sep 2019 09:22:55 +0000 (11:22 +0200)
committerFrank Louwers <frank@louwers.be>
Thu, 26 Sep 2019 09:22:55 +0000 (11:22 +0200)
pdns/pdns_recursor.cc

index 5a462be4ba87745c3765ee06e722cfacaa032c77..c9a417af2fa6f108bcc1f9df20190b9ec9fe9f34 100644 (file)
@@ -2788,7 +2788,7 @@ static void daemonize(void)
 
 static void termIntHandler(int)
 {
-  doExitNicely();
+  doExit();
 }
 
 static void usr1Handler(int)
@@ -4080,8 +4080,12 @@ static int serviceMain(int argc, char*argv[])
     g_log.toConsole(Logger::Critical);
     daemonize();
   }
-  signal(SIGTERM,termIntHandler);
-  signal(SIGINT,termIntHandler);
+  if(Utility::getpid() == 1) {
+    /* We are running as pid 1, register sigterm and sigint handler */
+    signal(SIGTERM,termIntHandler);
+    signal(SIGINT,termIntHandler);
+  } 
+
   signal(SIGUSR1,usr1Handler);
   signal(SIGUSR2,usr2Handler);
   signal(SIGPIPE,SIG_IGN);