From 7f81d4738f7ae7b827b4fe4b0a1a54f29e03d15a Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 12 Aug 2025 15:35:21 +0900 Subject: [PATCH] core/service: do not start watchdog on frozen unit when service manager is reloaded or reexecuted Otherwise, when service manager is reloaded or reexecuted, watchdong will be started for frozen services, and they may be killed after timeout. Fixes #38551. (cherry picked from commit c70816fd09a0e37732f48f204be282fda09918cf) --- src/core/service.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/service.c b/src/core/service.c index c83540c1209..25ccff1975f 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -1432,7 +1432,8 @@ static int service_coldplug(Unit *u) { (void) unit_setup_exec_runtime(u); } - if (IN_SET(s->deserialized_state, SERVICE_START_POST, SERVICE_RUNNING, SERVICE_RELOAD, SERVICE_RELOAD_SIGNAL, SERVICE_RELOAD_NOTIFY, SERVICE_MOUNTING)) + if (IN_SET(s->deserialized_state, SERVICE_START_POST, SERVICE_RUNNING, SERVICE_RELOAD, SERVICE_RELOAD_SIGNAL, SERVICE_RELOAD_NOTIFY, SERVICE_MOUNTING) && + freezer_state_finish(u->freezer_state) == FREEZER_RUNNING) service_start_watchdog(s); if (UNIT_ISSET(s->accept_socket)) { -- 2.47.3