fix(server): block dev-runner on Ctrl-C until supervisor finishes shutting down

The spawnSync parent had no signal handlers, so SIGINT killed it immediately
while the supervisor kept running in the background. The shell prompt came
back before the daemon had actually drained. Install no-op SIGINT/SIGTERM
handlers so spawnSync waits for the supervisor's graceful exit.
This commit is contained in:
Mohamed Boudra
2026-04-18 21:46:15 +07:00
parent 5a232d8cf1
commit 73b0b60bdd

View File

@@ -8,6 +8,14 @@ dotenv.config({
});
const daemonRunnerEntry = fileURLToPath(new URL("./supervisor-entrypoint.ts", import.meta.url));
// The supervisor handles SIGINT/SIGTERM itself and needs time to drain the
// worker gracefully. Ignore them here so spawnSync blocks until the supervisor
// finishes shutting down, instead of the parent dying on Ctrl-C and releasing
// the shell while the daemon is still logging.
process.on("SIGINT", () => {});
process.on("SIGTERM", () => {});
const result = spawnSync(
process.execPath,
[