From a4725fe71c0bec511cc0f861c248edc93a1b6d7d Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Tue, 28 Jan 2014 23:21:39 +0900 Subject: [PATCH] Detect if we kill device worker before it becomes operational. --- lib/roles/provider.js | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/lib/roles/provider.js b/lib/roles/provider.js index bae3f07c..6ed2db08 100644 --- a/lib/roles/provider.js +++ b/lib/roles/provider.js @@ -86,20 +86,26 @@ module.exports = function(options) { proc.on('exit', function(code, signal) { var data = workers[device.id] delete workers[device.id] - if (code === 0) { - log.info('Device worker "%s" stopped cleanly', device.id) - } - else { - log.error('Device worker "%s" had a dirty exit (code %d)', - device.id, code) - if (Date.now() - data.started < 10000) { - log.error('Device worker "%s" failed within 10 seconds of startup,' + - ' will not attempt to restart', device.id) - } - else { - log.info('Restarting worker of "%s"', device.id) - maybeConnect(device) - } + switch (code) { + case 0: + log.info('Device worker "%s" stopped cleanly', device.id) + break + case 143: // SIGTERM + log.warn('Device worker "%s" was killed before becoming operational' + , device.id) + break + default: + log.error('Device worker "%s" had a dirty exit (code %d)', + device.id, code) + if (Date.now() - data.started < 10000) { + log.error('Device worker "%s" failed within 10 seconds of startup,' + + ' will not attempt to restart', device.id) + } + else { + log.info('Restarting worker of "%s"', device.id) + maybeConnect(device) + } + break } }) workers[device.id] = {