mirror of
https://github.com/containers/kubernetes-mcp-server.git
synced 2025-10-23 01:22:57 +03:00
fix(npm): child process exits gracefully on SIGxxx (#241)
Signed-off-by: Marc Nuri <marc@marcnuri.com>
This commit is contained in:
@@ -21,7 +21,26 @@ const resolveBinaryPath = () => {
|
||||
}
|
||||
};
|
||||
|
||||
childProcess.execFileSync(resolveBinaryPath(), process.argv.slice(2), {
|
||||
const child = childProcess.spawn(resolveBinaryPath(), process.argv.slice(2), {
|
||||
stdio: 'inherit',
|
||||
});
|
||||
|
||||
const handleSignal = () => (signal) => {
|
||||
console.log(`Received ${signal}, terminating child process...`);
|
||||
if (child && !child.killed) {
|
||||
child.kill(signal);
|
||||
}
|
||||
};
|
||||
|
||||
['SIGTERM', 'SIGINT', 'SIGHUP'].forEach((signal) => {
|
||||
process.on(signal, handleSignal(signal));
|
||||
});
|
||||
|
||||
child.on('close', (code, signal) => {
|
||||
if (signal) {
|
||||
console.log(`Child process terminated by signal: ${signal}`);
|
||||
process.exit(128 + (signal === 'SIGTERM' ? 15 : signal === 'SIGINT' ? 2 : 1));
|
||||
} else {
|
||||
process.exit(code || 0);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user