ensure_display() and the run-canary launch used 'setsid nohup', to make them outlive the shell that started them. That is what has been killing every long run: a setsid'd process belongs to no supervised tree, and both Xvfb and xenia were reaped a couple of minutes in — the 'they die on their own every few minutes' note in the project memory. Measured: a bare Xvfb with no emulator running exited 0 (a clean shutdown, not a crash and not the OOM killer) at the exact moment a turn ended, and a session whose display was setsid'd from inside a tracked task died the same way 12 s after launch. Run launch_mission.sh as one tracked background task and keep Xvfb, openbox and xenia as its children. Adds an exit-status wrapper so a future death reports the server's own exit code (128+N for signal N) instead of being inferred, and clears a stale X lock before starting.
3.4 KiB
Executable File
3.4 KiB
Executable File