diff --git a/README.md b/README.md index aff9284..e611b69 100644 --- a/README.md +++ b/README.md @@ -167,4 +167,13 @@ Emitted when attempting to stop a Redis server. #### close -Emitted once a Redis server has stopped. +Emitted once a Redis server has stopped. This only happens when `server.closed` is called, +not when the `child_process` fails on it's own (`redis-server` not found, for example). + +#### exiting + +Emmited when a Redis server is exiting or `child_process` exits with an error. + +#### exit + +Emmited when a Redis server exited (and `server.closed` was called). diff --git a/RedisServer.js b/RedisServer.js index fb971d8..fcea32a 100644 --- a/RedisServer.js +++ b/RedisServer.js @@ -236,18 +236,24 @@ class RedisServer extends events.EventEmitter { else { server.isClosing = true; - server.emit('closing'); + server.emit('closing', result.err); server.process.once('close', () => reject(result.err)); } }; /** * A listener to close the server when the current process exits. + * For the parameter list, please consult: + * https://nodejs.org/api/child_process.html#child_process_event_exit + * @argument {Number} [exitCode] final process exit code + * @argument {String} [signal] The signal by which the redis was terminated * @return {undefined} */ - const exitListener = () => { + const exitListener = (exitCode, signal) => { + server.emit('exiting', { exitCode, signal }); // istanbul ignore next server.close(); + server.emit('exit', { exitCode, signal }); }; server.emit('opening');