From 990307fbc946f79e783f2b29de90a7291e8d26f0 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Tue, 11 Feb 2025 09:59:16 +0100 Subject: [PATCH] Fix kill() on timeout of pre:/post:/ready:scripts A long running pre/post/ready script must be killed properly, not by targeting its process group. Process group cleanup is handled by the service_monitor() when reaping the script's PID. Signed-off-by: Joachim Wiberg --- src/service.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/service.c b/src/service.c index 6747a336..98c3cd53 100644 --- a/src/service.c +++ b/src/service.c @@ -150,7 +150,7 @@ static void service_script_kill(svc_t *svc) continue; dbg("Killing service %s script PID %d.", svc_ident(svc, NULL, 0), ptr->pid); - kill(-ptr->pid, SIGKILL); + kill(ptr->pid, SIGKILL); TAILQ_REMOVE(&svc_assoc_list, ptr, link); free(ptr); } @@ -2086,7 +2086,8 @@ static void service_kill_script(svc_t *svc) if (svc->pid <= 1) return; - kill(-svc->pid, SIGKILL); + dbg("Timeout, killing service %s script PID %d", svc_ident(svc, NULL, 0), svc->pid); + kill(svc->pid, SIGKILL); } /*