Problem
The city dies when systemd kills user processes overnight. The tmux scope gets cleaned up by logind when no active login session exists.
Current workaround
loginctl enable-linger $USER — prevents systemd from killing user processes after logout.
Desired behavior
The city config should have a keep-alive option (e.g. keep_alive = true or run_as = "service") that:
- Automatically enables linger on
gc start if needed
- Optionally installs a systemd user service for the supervisor
- Warns on
gc doctor if the city is running without linger enabled
This ensures the city survives laptop lid-close, display manager session teardown, and SSH disconnects without manual sysadmin steps.
Context
City died at 00:59:46 on 2026-03-24 when systemd cleaned up the tmux scope (1.2G memory peak). All sessions stopped simultaneously. No OOM, no reboot — just logind killing user processes.
Problem
The city dies when systemd kills user processes overnight. The tmux scope gets cleaned up by logind when no active login session exists.
Current workaround
loginctl enable-linger $USER— prevents systemd from killing user processes after logout.Desired behavior
The city config should have a keep-alive option (e.g.
keep_alive = trueorrun_as = "service") that:gc startif neededgc doctorif the city is running without linger enabledThis ensures the city survives laptop lid-close, display manager session teardown, and SSH disconnects without manual sysadmin steps.
Context
City died at 00:59:46 on 2026-03-24 when systemd cleaned up the tmux scope (1.2G memory peak). All sessions stopped simultaneously. No OOM, no reboot — just logind killing user processes.