From c70816fd09a0e37732f48f204be282fda09918cf 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. --- 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 aa8acdef78c..4f8eaf40518 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -1418,7 +1418,8 @@ static int service_coldplug(Unit *u) { SERVICE_DEAD_RESOURCES_PINNED)) (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_REFRESH_EXTENSIONS, SERVICE_MOUNTING)) + if (IN_SET(s->deserialized_state, SERVICE_START_POST, SERVICE_RUNNING, SERVICE_RELOAD, SERVICE_RELOAD_SIGNAL, SERVICE_RELOAD_NOTIFY, SERVICE_REFRESH_EXTENSIONS, SERVICE_MOUNTING) && + freezer_state_finish(u->freezer_state) == FREEZER_RUNNING) service_start_watchdog(s); if (UNIT_ISSET(s->accept_socket)) { -- 2.47.3