1.1.0 • Published 8 years ago

respawn-group v1.1.0

Weekly downloads
59
License
-
Repository
github
Last release
8 years ago

respawn-group

Manage a group of respawn monitors

npm install respawn-group

Usage

var regroup = require('respawn-group');
var group = regroup();

group.add('test', ['node', 'server.js']);
group.start('test');

API

  • regroup(defaults) -> group Instantiate a new respawn group. All opts will inherit from defaults

  • group.add(id, command, opts) -> mon Add a new respawn monitor. See respawn for more information. If you add a new monitor with the same id as an old one it will be used when the old monitor stops.

  • group.remove(id, cb) Remove a monitor

  • group.start(id) -> mon Start a monitor

  • group.stop(id, cb) Stop a monitor

  • group.restart(id) -> mon Gracefully restart a monitor

  • group.get(id) -> mon Get a monitor

  • group.has(id) -> bool True is group has monitor

  • group.list() -> array List all monitors

  • group.shutdown(cb) Stop all services and ignore all following starts

Events

  • group.on('start', mon) Monitor has started. mon.id contains the id of the monitor

  • group.on('stop', mon) Monitor is fully stopped

  • group.on('crash', mon) Monitor has crashed

  • group.on('restart', mon) Monitor is being restarted

  • group.on('sleep', mon) Monitor is sleeping

  • group.on('spawn', mon, process) Monitor has spawned a child process

  • group.on('exit', mon, code, signal) Monitors child process has exited

  • group.on('stdout', mon, data) child process stdout has emitted data

  • group.on('stderr', mon, data) child process stderr has emitted data

  • group.on('warn', mon, err) Monitor has a warning

  • group.on('finalize', mon) A monitor is fully stopped and being garbage collected. Happens if you call remove or updates a monitor

Updating existing monitors

To update an existing monitor simply add it again with the same id

group.add('test', ['node', 'server.js']);

// ... wait a bit ...
// now lets update test

group.add('test', ['node', 'server2.js']);
group.restart('test'); // you need to restart test for the new monitor to take over
                       // this will trigger a 'finalize' event for the old monitor

License

MIT

1.1.0

8 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.6.2

10 years ago

0.6.1

10 years ago

0.6.0

10 years ago

0.5.1

10 years ago

0.5.0

10 years ago

0.4.2

10 years ago

0.4.1

10 years ago

0.4.0

10 years ago

0.3.0

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago