|
|
@@ -157,7 +157,7 @@ export function probeLinuxNative(internals: LinuxScopeInternals = {}): boolean {
|
|
|
|
|
|
interface DirectRange {
|
|
|
running(): boolean
|
|
|
- /** Acknowledge TERM delivery; KILL must confirm direct-PID delivery or absence. */
|
|
|
+ /** True for group TERM delivery, direct signal submission, or proven direct-PID absence. */
|
|
|
signal(signal: 'SIGTERM' | 'SIGKILL'): boolean
|
|
|
/** Direct exit/error settlement, independent of output drain and managed-range completion. */
|
|
|
settled: Promise<unknown>
|
|
|
@@ -493,6 +493,7 @@ function signalChildGroup(child: ReturnType<typeof spawn>, signal: 'SIGTERM' | '
|
|
|
} catch { /* A missing or inaccessible group still permits a direct-process attempt. */ }
|
|
|
if (groupSignalled && signal === 'SIGTERM') return true
|
|
|
// Group success can reflect another member; joining direct exit requires its own SIGKILL submission.
|
|
|
+ // ChildProcess.kill can emit an error that settles directOutcome before the real exit.
|
|
|
return signalLinuxDirectProcess(child.pid as number, () => process.kill(child.pid as number, signal))
|
|
|
}
|
|
|
|