From e641811c659219154a837e264f61598014cea431 Mon Sep 17 00:00:00 2001 From: Anita Zhang Date: Sat, 25 Jan 2020 16:46:16 +0100 Subject: core: transition to FINAL_SIGTERM state after ExecStopPost= Fixes #14566 (cherry picked from commit c1566ef0d22ed786b9ecf4c476e53b8a91e67578) (cherry picked from commit b7f2308bda4942d1b8e10250db6836fe4fc0d8b8) (cherry picked from commit 49e7c3b617613306211cc8e28e68d4e5be8fbec4) --- src/core/service.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src') diff --git a/src/core/service.c b/src/core/service.c index 98aa9b9292..72b579a32c 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -3492,6 +3492,12 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { break; case SERVICE_STOP_POST: + + if (control_pid_good(s) <= 0) + service_enter_signal(s, SERVICE_FINAL_SIGTERM, f); + + break; + case SERVICE_FINAL_SIGTERM: case SERVICE_FINAL_SIGKILL: @@ -3641,6 +3647,10 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { break; case SERVICE_STOP_POST: + if (main_pid_good(s) <= 0) + service_enter_signal(s, SERVICE_FINAL_SIGTERM, f); + break; + case SERVICE_FINAL_SIGTERM: case SERVICE_FINAL_SIGKILL: if (main_pid_good(s) <= 0) -- cgit v1.2.1