1.1.8 • Published 7 years ago

revive v1.1.8

Weekly downloads
48
License
MPL-2.0
Repository
github
Last release
7 years ago

Process Management Tool | Auto Restarts | Advanced Events | And More Warning 1.1.1 Breaking API Changes

Revive

A process management tool. Events, status, cluster, and automatic restarts.

Install

npm install revive

Example

const Revive = require('revive');

const options = {
	name: 'test',

	cmd: process.execPath,

	arg: ['app.js'],
	env: { PORT: 8000 },
	cwd: '/home/user/code/node/app/.',

	cluster: true,
	instances: 2,

	stdout: '/logs/stdout.log',
	stderr: '/logs/stderr.log',

	sleepTime: 1000,
	crashTime: 6 * 1000,
	maxCrashCount: 1000
};

const monitor = Revive(options);

monitor.on('start', function () {
	console.log(monitor.toJSON());
});

monitor.start();

Options

  • name: String Defaults to null the name of the process.

  • arg: Array, String Defaults to null arguments or node script.

  • cwd: String Defaults to process.cwd() the current working directory.

  • cmd: String Defaults to process.execPath the systems absolute executable/node path.

  • cluster: Boolean Defaults to false.

  • instances: Number Defaults to Os.cpus().length if cluster is set to true

  • stdout: String Defaults to 'pipe' otherwise a file path. If a path is provided than this event will not fire.

  • stderr: String Defaults to 'pipe' otherwise a file path. If a path is provided than this event will not fire.

  • sleepTime: Array, Number Defaults to 1000 in milliseconds to sleep between start after a crash.

  • crashTime: Number Defaults to 60000ms. The time until the maxCrashCount resets. So if 1000 crashes happen in 60s then the process will exit.

  • maxCrashCount: Number Defaults to 1000 crashes. A crash is triggered and the process exited at nth + 1.

  • env: {} Environment variables for the process.

  • data: {} A custom object for you.

API

  • monitor.start() Starts the monitor

  • monitor.stop() Stops the monitor (kills the process if its running with SIGKILL).

  • monitor.restart() Restarts the monitor by stopping then starting (process must be started).

  • monitor.toJSON() Creates a stringyifiable object. The object returns stats and data about the process.

Cluster Events

  • monitor.on('status', callback)

  • monitor.on('start', callback) Starts the process. Warning async so process may not be available immediately.

  • monitor.on('stop', callback) The process and it's tree is sent a SIGTERM signal. If the process does not terminate after ten seconds then the process is sent a SIGKILL signal.

  • monitor.on('restart', callback) Same as stopping then starting or vice versa.

  • monitor.on('stdout', callback) Emits an stdout. Only available if no Options.stdout is pipe. - Stdout Parameter the stdout message.

  • monitor.on('stderr', callback) Emits an stderr. Only available if no Options.stderr is pipe. - Stderr Parameter the stderr message.

  • monitor.on('error', callback) Emits when the process could not spawn, kill, or a message failed. - Error Parameter the error message.

  • monitor.on('exit', callback) The process has exited. - Code The numeric exit code - Signal The string signal

Instance Events

  • monitor.on('reload', callback) Zero downtime restart if cluster is set to true and instances is greater than one.

  • monitor.on('sleep', callback) Triggered when process crashes and enters sleep.

  • monitor.on('crash', callback) Triggered when the process crashes.

Issues

Immediate start then stop execution does not send the signals. This could be a problem with node.js.

1.1.8

7 years ago

1.1.7

7 years ago

1.1.6

7 years ago

1.1.5

7 years ago

1.1.4

7 years ago

1.1.3

7 years ago

1.1.2

7 years ago

1.1.1

7 years ago

1.1.0

8 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago