Files
darling-lol/docs
zero 97ff3df51d fix(launcher): supervise the guest session and clean up after it
The Riot Client does not exit when its window closes, and a loader that dies
first leaves launchd/mldr and the client tree holding memory until the runtime
is restarted by hand. run-riot-client.sh now execs a small supervisor instead
of the guest loader:

- SIGINT/SIGTERM/SIGHUP are forwarded to the guest process group, the loader
  gets a grace period, and darling shutdown runs before any leftover guest
  process is stopped.
- Leftovers are stopped only when they carry this prefix's __mldr_sockpath and
  the same uid, deepest-first, SIGTERM then SIGKILL. The guest PID namespace is
  learned while the session runs; a namespace equal to the host's is refused.
- Cleanup only runs when this launcher started the runtime, so a second launch
  that attaches to an existing server leaves it running.
- RCLOL_STOP_AFTER_CLIENT_SECONDS=N adds an opt-in idle stop: it fires only
  after a managed client window was seen and is gone for N seconds with no game
  process, and never when the window state cannot be read. Off by default.
- RCLOL_CLEAN_ON_EXIT=0 keeps the previous exec-only behaviour.

Adds 23 unit tests for attribution, namespace scoping, shutdown ordering, the
attached-session guard and the idle decision.
2026-10-25 12:57:04 -06:00
..