feat: improve NodeCG runtime installation and relaunch behavior

This commit is contained in:
2026-05-16 22:22:30 +02:00
parent 41e4e91c4b
commit 955a1f7116
10 changed files with 104 additions and 37 deletions
+11 -1
View File
@@ -80,7 +80,8 @@ export function createNodecgProcessManager({
},
stdio: ["ignore", "pipe", "pipe"],
detached: resolvedDeps.platform !== "win32",
shell: resolvedDeps.platform === "win32",
shell: false,
windowsHide: true,
});
child.stdout?.on("data", (chunk) => {
@@ -163,7 +164,15 @@ export function createNodecgProcessManager({
killNodecgProcessTree(pid, "SIGTERM", log, resolvedDeps);
stopNodecgPromise = new Promise((resolve) => {
let completed = false;
const complete = () => {
if (completed) {
return;
}
completed = true;
if (nodecgProcess === processToStop) {
nodecgProcess = null;
}
@@ -181,6 +190,7 @@ export function createNodecgProcessManager({
if (processToStop.exitCode === null && processToStop.signalCode === null) {
log(`NodeCG did not exit after SIGTERM, forcing SIGKILL pid=${pid}`);
killNodecgProcessTree(pid, "SIGKILL", log, resolvedDeps);
complete();
}
},
Math.max(0, appConfig.nodecgKillTimeoutMs),