diff options
-rw-r--r-- | configure.ac | 6 |
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); |