Skip to content

Commit a6e2393

Browse files
authored
Merge pull request #127 from ngrok/bob/term-paper
register with SIGTERM as well
2 parents 92cd3b3 + a2358fb commit a6e2393

File tree

2 files changed

+44
-38
lines changed

2 files changed

+44
-38
lines changed

index.js

Lines changed: 22 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

trailer.js

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -228,28 +228,31 @@ async function ngrokLinkPipe(listener, server) {
228228
}
229229

230230
// protect against multiple calls, for instance from npm
231-
var sigintRan = false;
231+
var sigHandlerRan = false;
232232

233233
function registerCleanup(listener, socket) {
234-
process.on("SIGINT", function () {
235-
if (sigintRan) return;
236-
sigintRan = true;
234+
for (const signal of ["SIGINT", "SIGTERM"]) {
235+
process.on(signal, function () {
236+
if (process.listenerCount(signal) > 1) {
237+
// user has registered a handler, abort this one
238+
return;
239+
}
237240

238-
if (process.listenerCount("SIGINT") > 1) {
239-
// user has registered a handler, abort this one
240-
return;
241-
}
242-
// close listener
243-
if (listener) {
244-
listener.close().catch((err) => {
245-
console.error(`Error closing listener: ${err}`);
246-
});
247-
}
248-
// close webserver's socket
249-
if (socket) socket.close();
250-
// unregister any logging callback
251-
loggingCallback();
252-
});
241+
if (sigHandlerRan) return;
242+
sigHandlerRan = true;
243+
244+
// close listener
245+
if (listener) {
246+
listener.close().catch((err) => {
247+
console.error(`Error closing listener: ${err}`);
248+
});
249+
}
250+
// close webserver's socket
251+
if (socket) socket.close();
252+
// unregister any logging callback
253+
loggingCallback();
254+
});
255+
}
253256
}
254257

255258
function consoleLog(level) {

0 commit comments

Comments
 (0)