From df66b93fe2ee93a5712d9b5bc7dd355b99cf8354 Mon Sep 17 00:00:00 2001 From: Jouke Witteveen Date: Mon, 2 Oct 2017 16:35:27 +0200 Subject: [PATCH] service: better detect when a Type=notify service cannot become active anymore (#6959) No need to wait for a timeout when we know things are not going to work out. When the main process goes away and only notifications from the main process are accepted, then we will not receive any notifications anymore. --- src/core/service.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/service.c b/src/core/service.c index b34d7ddcb37..e990d477972 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -3035,8 +3035,8 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { * has been received */ if (f != SERVICE_SUCCESS) service_enter_signal(s, SERVICE_STOP_SIGTERM, f); - else if (!s->remain_after_exit) - /* The service has never been active */ + else if (!s->remain_after_exit || s->notify_access == NOTIFY_MAIN) + /* The service has never been and will never be active */ service_enter_signal(s, SERVICE_STOP_SIGTERM, SERVICE_FAILURE_PROTOCOL); break; } -- 2.39.5