mirror of
https://github.com/lucannez64/darling-lol.git
synced 2026-10-26 19:47:42 +00:00
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.