angel.js
angel.js is a simple library to gracefully restart multi process net.Servers
Features
- SIGHUP to graceful restart
- SIGTERM to graceful shutdown
- refresh modules, and graceful restart only if refresh succeeds
- fork a new worker on accidental death
- max_requests_per_child
Example
eg/app.js:
var http = ; var server = http;moduleexports = server;
eg/server.js:
var angel = app = ; ;
will output something like:
% node eg/server.jsmaster[20363] created pid_file: angel.pidmaster[20363] master will fork 4 workersmaster[20363] forked worker[20364]master[20363] forked worker[20365]master[20363] forked worker[20366]master[20363] forked worker[20367]worker[20365] launchedworker[20365] listening on 3000worker[20364] launchedworker[20364] listening on 3000worker[20366] launchedworker[20366] listening on 3000worker[20367] launchedworker[20367] listening on 3000
to graceful restart:
kill -HUP `cat angel.pid`
after HUP you'll have stdout:
master[20363] SIGHUPmaster[20363] reloaded /path/to/eg/app.jsmaster[20363] forked worker[20370]master[20363] forked worker[20371]master[20363] forked worker[20372]master[20363] forked worker[20373]worker[20372] launchedworker[20370] launchedworker[20372] listening on 3000worker[20370] listening on 3000worker[20371] launchedworker[20371] listening on 3000worker[20373] launchedworker[20373] listening on 3000worker[20364] closesworker[20365] closesmaster[20363] worker 20364 diedmaster[20363] worker 20365 diedworker[20366] closesmaster[20363] worker 20366 diedworker[20367] closesmaster[20363] worker 20367 died
TODO
- merge pull requests :-)
License
MIT License