diff --git a/lib/forever/worker.js b/lib/forever/worker.js index 04ed9bab..0fc326cc 100644 --- a/lib/forever/worker.js +++ b/lib/forever/worker.js @@ -27,6 +27,7 @@ var Worker = exports.Worker = function (options) { this.monitor = options.monitor; this.sockPath = options.sockPath || forever.config.get('sockPath'); + this.exitOnKill = options.exitOnKill === true; this._socket = null; }; @@ -61,6 +62,14 @@ Worker.prototype.start = function (cb) { socket.send(['spawn', 'start']); }); }); + + socket.data(['kill'], function () { + self.monitor.on('stop', function () { + socket.send(['kill', 'stop']); + this.exitOnKill && process.exit(); + }); + self.monitor.kill(); + }); }); findSocket(self.sockPath, function (err, sock) {