From: Yu Watanabe Date: Tue, 12 Aug 2025 06:35:21 +0000 (+0900) Subject: core/service: do not start watchdog on frozen unit when service manager is reloaded... X-Git-Tag: v258-rc3~46^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c70816fd09a0e37732f48f204be282fda09918cf;p=thirdparty%2Fsystemd.git 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. --- 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)) {