| 539 | */ |
| 540 | let shuttingDown = false |
| 541 | function signalHandler(signal: NodeJS.Signals, signalNum: number): void { |
| 542 | if (shuttingDown) { |
| 543 | return |
| 544 | } |
| 545 | shuttingDown = true |
| 546 | |
| 547 | Logger.internal.info('Got %s, shutting down child bridge process...', signal) |
| 548 | |
| 549 | try { |
| 550 | childPluginFork.shutdown() |
| 551 | } catch (error: unknown) { |
| 552 | Logger.internal.error('Error during child bridge shutdown:', error) |
| 553 | } |
| 554 | |
| 555 | setTimeout(() => process.exit(128 + signalNum), 5000).unref() |
| 556 | } |
| 557 | |
| 558 | process.on('SIGINT', signalHandler.bind(undefined, 'SIGINT', 2)) |
| 559 | process.on('SIGTERM', signalHandler.bind(undefined, 'SIGTERM', 15)) |