Repository navigation
v1.1.10
Fix: stop button now kills the entire process group (master + all workers)
Root cause diagnosed from VPS output:
- gunicorn spawns 4+ worker processes; killing only the parent left workers running
- All site processes run as litehost (isolation migration never ran), so pkill -u lh-* found nothing
- No site cgroups existed, so cgroup.kill did nothing
- fuser not in sudoers, so port-based kill was denied
The fix: spawn() uses detached:true which makes the child a process group leader (PGID = child PID). process.kill(-pid, SIGKILL) kills the entire group atomically — no sudo required since all processes run as the same user.
For processes recovered after a panel restart (not in the process Map), getPortPid() finds the master listening on the port and kills its group the same way.