exit-signal
Version:
A Node.js library for handling graceful process exits and shutdown signals.
61 lines (41 loc) • 2.12 kB
Markdown
[](https://github.com/shahradelahi/node-exit-signal/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/exit-signal)
[](/LICENSE)
[](https://packagephobia.com/result?p=exit-signal)
_exit-signal_ is a Node.js utility for handling process termination gracefully. The `process.on('exit')` event does not capture every method by which a process can terminate. By registering custom exit handlers, you can ensure proper cleanup and effective resource management.
---
- [Installation](
- [Usage](
- [Documentation](
- [Contributing](
- [License](
```bash
npm install exit-signal
```
```typescript
import { gracefullyExit, onExit } from 'exit-signal';
// Example 1: Register a simple exit handler
const unsubscribe = onExit(() => {
console.log('Process is exiting... Cleaning up resources.');
});
// Unsubscribe the handler
unsubscribe();
// Example 2: Register an exit handler for specific signals
onExit(async (exitCode) => {
console.log(`Received ${exitCode}. Performing async cleanup...`);
await new Promise((resolve) => setTimeout(resolve, 1000));
console.log('Cleanup completed.');
});
// Example 3: Trigger a graceful exit manually
gracefullyExit();
```
For all configuration options, please see [the API docs](https://www.jsdocs.io/package/exit-signal).
Want to contribute? Awesome! To show your support is to star the project, or to raise issues on [GitHub](https://github.com/shahradelahi/node-exit-signal)
Thanks again for your support, it is much appreciated! 🙏
[](/LICENSE) © [Shahrad Elahi](https://github.com/shahradelahi) and [contributors](https://github.com/shahradelahi/node-exit-signal/graphs/contributors).