summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac6
1 files changed, 4 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 3712d55d..003b235e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2534,10 +2534,12 @@ static void sighandler(int sig) { }
sa.sa_flags = SA_RESTART;
(void)sigaction(SIGTERM, &sa, NULL);
if ((pid = fork()) == 0) { /* child */
+ pid = getppid();
sleep(1);
- kill(getppid(), SIGTERM);
+ kill(pid, SIGTERM);
sleep(1);
- kill(getppid(), SIGKILL);
+ if (getppid() == pid) /* if parent did not exit, shoot it */
+ kill(pid, SIGKILL);
exit(0);
} else { /* parent */
r = select(0, NULL, NULL, NULL, NULL);