28 lines
862 B
JavaScript
28 lines
862 B
JavaScript
/**
|
|
* Sets up signal handlers for graceful shutdown.
|
|
*
|
|
* @param options Configuration options
|
|
* @param options.logger Logger instance
|
|
* @param options.cleanup Optional cleanup function to be called before exit
|
|
*/
|
|
export function onSignals(options) {
|
|
const { logger, cleanup } = options;
|
|
const handleSignal = (signal) => {
|
|
logger.info(`Caught ${signal}. Exiting...`);
|
|
if (cleanup) {
|
|
cleanup();
|
|
}
|
|
process.exit(0);
|
|
};
|
|
process.on('SIGINT', () => handleSignal('SIGINT'));
|
|
process.on('SIGTERM', () => handleSignal('SIGTERM'));
|
|
process.on('SIGHUP', () => handleSignal('SIGHUP'));
|
|
process.stdin.on('close', () => {
|
|
logger.info('stdin closed. Exiting...');
|
|
if (cleanup) {
|
|
cleanup();
|
|
}
|
|
process.exit(0);
|
|
});
|
|
}
|
|
//# sourceMappingURL=onSignals.js.map
|