exit-signal
v1.0.1
Published
A Node.js library for handling graceful process exits and shutdown signals.
Downloads
85
Maintainers
Readme
exit-signal
exit-signal is a Node.js utility for handling process termination gracefully. Register custom exit handlers for signals like SIGINT
and SIGTERM
to ensure proper cleanup and resource management.
📦 Installation
npm install exit-signal
📖 Usage
import { gracefullyExit, onExit, onExitSignal } from 'exit-signal';
// Example 1: Register a simple exit handler
onExit(() => {
console.log('Process is exiting... Cleaning up resources.');
});
// Example 2: Register an exit handler for specific signals
const unsubscribe = onExitSignal(['SIGINT', 'SIGTERM'], async (signal) => {
console.log(`Received ${signal}. Performing async cleanup...`);
await new Promise((resolve) => setTimeout(resolve, 1000));
console.log('Cleanup completed.');
});
// Unsubscribe example (optional)
setTimeout(() => {
unsubscribe();
console.log('Exit handler removed.');
}, 5000);
// Example 3: Trigger a graceful exit manually
gracefullyExit();
📚 Documentation
For all configuration options, please see the API docs.
API
/**
* Registers an exit handler that will be called on process termination.
*
* @param {SignalHandler} handler - The function to execute on exit.
* @param {ExitOptions} [options={}] - Optional configurations for the exit hook.
* @returns {UnsubscribeFn} - A function to remove the exit hook.
*/
function onExit(handler: SignalHandler, options?: ExitOptions): UnsubscribeFn;
/**
* Registers an exit handler for a specific signal or multiple signals.
*
* @param {Signal | Signal[]} signal - The signal(s) to listen for.
* @param {SignalHandler} handler - The function to execute when the signal is received.
* @param {ExitOptions} [options={}] - Optional configurations for the exit hook.
* @returns {UnsubscribeFn} - A function to remove the exit hook.
*/
function onExitSignal(signal: Signal | Signal[], handler: SignalHandler, options?: ExitOptions): UnsubscribeFn;
/**
* Initiates a graceful exit by triggering the SIGINT signal.
*/
function gracefullyExit(): void;
🤝 Contributing
Want to contribute? Awesome! To show your support is to star the project, or to raise issues on GitHub
Thanks again for your support, it is much appreciated! 🙏
License
MIT © Shahrad Elahi and contributors.