Skip to content

Instantly share code, notes, and snippets.

@nicolo-ribaudo
Last active May 6, 2019 18:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicolo-ribaudo/e6dd1806e184aea49a824d1dea2d0001 to your computer and use it in GitHub Desktop.
Save nicolo-ribaudo/e6dd1806e184aea49a824d1dea2d0001 to your computer and use it in GitHub Desktop.
SIGINT babel-node test
console.log(`Child process is pid ${process.pid}`);
process.on("SIGINT", () => {
console.log(`Child process killed`);
clearTimeout(keepalive);
});
// Keep alive for 5 mins
var keepalive = setTimeout(() => {}, 1e3 * 60 * 5);
const EXITCODE = 0;
process.on("exit", () => {
console.log("Child process is exiting...");
process.exit(EXITCODE);
});
const child_process = require("child_process");
console.log(`Main process is pid ${process.pid}`);
const proc = child_process.spawn("node", ["child.js"], {
stdio: "inherit"
});
proc.on("exit", function(code, signal) {
console.log(`Child process exited. code: ${code}, signal: ${signal}`);
process.on("exit", function() {
if (signal) {
console.log("Main process is committing suicide...");
process.kill(process.pid, signal);
} else {
console.log("Main process is xiting...");
process.exit(code);
}
});
});
process.on("SIGINT", () => {
console.log(`Main process killed`);
console.log("Killing child process...");
proc.kill("SIGINT");
process.exit(1);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment