diff --git a/lib/units/provider/index.js b/lib/units/provider/index.js index c31edfe0..ad8de2b8 100644 --- a/lib/units/provider/index.js +++ b/lib/units/provider/index.js @@ -181,8 +181,10 @@ module.exports = function(options) { var allocatedPorts = ports.splice(0, 4) var proc = options.fork(device, allocatedPorts.slice()) var resolver = Promise.defer() + var didExit = false function exitListener(code, signal) { + didExit = true if (signal) { log.warn( 'Device worker "%s" was killed with signal %s, assuming ' + @@ -248,8 +250,10 @@ module.exports = function(options) { _.pull(lists.waiting, device.id) }) .catch(Promise.CancellationError, function() { - log.info('Gracefully killing device worker "%s"', device.id) - return procutil.gracefullyKill(proc, options.killTimeout) + if (!didExit) { + log.info('Gracefully killing device worker "%s"', device.id) + return procutil.gracefullyKill(proc, options.killTimeout) + } }) .catch(Promise.TimeoutError, function(err) { log.error(