fix(subprocess): settle a Linux scope left active with no processes

Range observation waited for an active transient scope to leave `active` before it would prove the managed range empty. systemd ends a scope only when it observ

Fix

Range observation waited for an active transient scope to leave `active` before it would prove the managed range empty. systemd ends a scope only when it observes the populated-to-empty transition, so a payload killed before the manager placed it in the scope's cgroup leaves the unit active with an empty cgroup forever. `waitForExit()` then polled a unit that could not change, and `LocalSubprocess

Date
2026-09-10
Version
master@aaa02a3
commit
aaa02a3

View commit on GitHub

Range observation waited for an active transient scope to leave active before it would prove the managed range empty. systemd ends a scope only when it observes the populated-to-empty transition, so a payload killed before the manager placed it in the scope's cgroup leaves the unit active with an empty cgroup forever. waitForExit() then polled a unit that could not change, and `LocalSubprocess