Compare commits

..

1 Commits

Author SHA1 Message Date
d37071dae0 fix(spawn): use detached:true so children are immune to terminal SIGINT
Children now get their own process group. Terminal Ctrl+C only reaches
the parent, which then does orderly tree-kill while children are still
alive and the process tree is intact.
2026-03-04 00:49:29 +00:00
2 changed files with 3 additions and 3 deletions

View File

@@ -1,7 +1,7 @@
{ {
"name": "@push.rocks/smartshell", "name": "@push.rocks/smartshell",
"private": false, "private": false,
"version": "3.3.4", "version": "3.3.5",
"description": "A library for executing shell commands using promises.", "description": "A library for executing shell commands using promises.",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts", "typings": "dist_ts/index.d.ts",

View File

@@ -119,7 +119,7 @@ export class Smartshell {
shell: false, // SECURITY: Never use shell with untrusted input shell: false, // SECURITY: Never use shell with untrusted input
cwd: process.cwd(), cwd: process.cwd(),
env: options.env || process.env, env: options.env || process.env,
detached: false, detached: true, // Own process group — immune to terminal SIGINT, managed by smartexit
signal: options.signal, signal: options.signal,
}); });
@@ -342,7 +342,7 @@ export class Smartshell {
shell: true, shell: true,
cwd: process.cwd(), cwd: process.cwd(),
env: options.env || process.env, env: options.env || process.env,
detached: false, detached: true, // Own process group — immune to terminal SIGINT, managed by smartexit
signal: options.signal, signal: options.signal,
}); });