A small module for exiting a node process cleanly, with ease.
Clean exits. period. Say goodbye to the days of:
phantom_process.js 1469 justin 54r REG 1,2 170 3850404 /Users/justin/.node/bin
phantom_process.js 1788 justin 55r REG 1,2 1836 6122132 /Users/justin/.node/bin
phantom_process.js 13447 justin 57r REG 1,2 238 6122133 /Users/justin/.node/bin
phantom_process.js 19130 justin 59r REG 1,2 442 6122134 /Users/justin/.node/bin
phantom_process.js 22401 justin 345u REG 1,2 3072 4269314 /Users/justin/.node/bin
Intended only for very basic use cases; the goal is to keep it simple.
$ npm install --save node-clean-exit
At the bottom of your node script, add:
require('node-clean-exit')();
That's it! Your script now captures SIGINT
and UncaughtException
errors, outputs the stack trace, and exits cleanly.
For tight integration and easy
child process
spawning, try spork.
Options can be passed as well, using:
require('node-clean-exit')(options);
- children {array} - List of spork or forever-monitor
child processes
to be killed on exit. - stdio {array} - Identify whether or not to pipe STDIN, STDOUT, STDERR to the parent process. Defaults to
['inherit', 'inherit', 'inherit']
. - verbose {mixed} - Output more. Can be a boolean or a number. The higher the number, the higher the verbosity. Defaults to
false
.
The MIT License (MIT)
Copyright (c) 2016 Justin Helmer
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.