From 40bd3edb32d321347a4dbce880e6ccd3c9c3a635 Mon Sep 17 00:00:00 2001 From: Matthew Jensen Date: Wed, 3 Feb 2021 10:00:40 +1100 Subject: [PATCH 1/2] Added TERM signal handler --- packages/master/master.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/master/master.js b/packages/master/master.js index c0e6a677..55f0da3a 100755 --- a/packages/master/master.js +++ b/packages/master/master.js @@ -1966,6 +1966,18 @@ async function startServer(args) { logger.info("Caught interrupt signal, shutting down"); shutdown(); }); + let secondSigterm = false; + process.on("SIGTERM", () => { + if (secondSigterm) { + logger.fatal("Caught second termination, terminating immediately"); + // eslint-disable-next-line no-process-exit + process.exit(1); + } + + secondSigterm = true; + logger.info("Caught termination signal, shutting down"); + shutdown(); + }); // terminal closed process.on("SIGHUP", () => { From c101fa7a32fb0ae7d9f746f2acd512939c38dc3b Mon Sep 17 00:00:00 2001 From: Matthew Jensen Date: Wed, 3 Feb 2021 10:22:31 +1100 Subject: [PATCH 2/2] Added term signal handling to slave process --- packages/slave/slave.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/slave/slave.js b/packages/slave/slave.js index 3dbef351..120df4de 100755 --- a/packages/slave/slave.js +++ b/packages/slave/slave.js @@ -1625,6 +1625,19 @@ async function startSlave() { logger.info("Caught interrupt signal, shutting down"); slave.shutdown(); }); + let secondSigterm = false; + process.on("SIGTERM", () => { + if (secondSigterm) { + setBlocking(true); + logger.fatal("Caught second termination signal, terminating immediately"); + // eslint-disable-next-line no-process-exit + process.exit(1); + } + + secondSigterm = true; + logger.info("Caught termination signal, shutting down"); + slave.shutdown(); + }); slaveConnector.once("connect", () => { logger.add(new libLoggingUtils.LinkTransport({ link: slave }));