From: Lennart Poettering Date: Tue, 19 Sep 2023 14:24:32 +0000 (+0200) Subject: scope: only stop watching processes when we go down X-Git-Tag: v255-rc1~489^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=05d1630e7022a424db894e31044c950e5995235d;p=thirdparty%2Fsystemd.git scope: only stop watching processes when we go down Let's not stop watching processes on every scope state change. This corrects behaviour when a scope is being enqueued and hasn't started yet, but has processes associated to it already. previously, if we'd doa full PID 1 reload we'd stop watching those pids. With this change we'll continue watching them in that case, and only stop watching them when the scope unit really shuts down after first being up. --- diff --git a/src/core/scope.c b/src/core/scope.c index d8860a6da1c..1bcd4ed84f2 100644 --- a/src/core/scope.c +++ b/src/core/scope.c @@ -119,7 +119,7 @@ static void scope_set_state(Scope *s, ScopeState state) { if (!IN_SET(state, SCOPE_STOP_SIGTERM, SCOPE_STOP_SIGKILL, SCOPE_START_CHOWN, SCOPE_RUNNING)) s->timer_event_source = sd_event_source_disable_unref(s->timer_event_source); - if (IN_SET(state, SCOPE_DEAD, SCOPE_FAILED)) { + if (!IN_SET(old_state, SCOPE_DEAD, SCOPE_FAILED) && IN_SET(state, SCOPE_DEAD, SCOPE_FAILED)) { unit_unwatch_all_pids(UNIT(s)); unit_dequeue_rewatch_pids(UNIT(s)); }