lib/clusterEvents.js
function disconnectTimeoutHandler(worker, cluster) {
    verbose('worker %d is stuck in disconnect', worker.process.pid);

    // if this is not a suicide we need to preserve that as worker.kill() will make this a suicide
    if (!worker.suicide) {
      master.suicideOverrides[worker.id] = worker.id;
    }

    master.isRunning(worker, function(running) {
      if (!running) {
        return;
      }

      try {
        debug('sending SIGKILL to worker %d', worker.process.pid);
        process.kill(worker.process.pid, 'SIGKILL');
      } catch (e) {
        // this can happen.  don't crash!!
      }
    });
  }
function disconnectTimeoutHandler(worker, cluster) {
    verbose('worker %d is stuck in disconnect', worker.process.pid);

    // if this is not a suicide we need to preserve that as worker.kill() will make this a suicide
    if (!worker.suicide) {
      master.suicideOverrides[worker.id] = worker.id;
    }

    master.isRunning(worker, function(running) {
      if (!running) {
        return;
      }

      try {
        debug('sending SIGKILL to worker %d', worker.process.pid);
        process.kill(worker.process.pid, 'SIGKILL');
      } catch (e) {
        // this can happen.  don't crash!!
      }
    });
  }
function disconnectTimeoutHandler ( worker , cluster ) { verbose ( 'worker %d is stuck in disconnect' , worker . process . pid ) ; // if this is not a suicide we need to preserve that as worker.kill() will make this a suicide if ( ! worker . suicide ) { master . suicideOverrides [ worker . id ] = worker . id ; } master . isRunning ( worker , function ( running ) { if ( ! running ) { return ; } try { debug ( 'sending SIGKILL to worker %d' , worker . process . pid ) ; process . kill ( worker . process . pid , 'SIGKILL' ) ; } catch ( e ) { // this can happen.  don't crash!! } } ) ; }
Called when worker is taking too long to disconnect

@private
@param worker
@param cluster
Called when worker is taking too long to disconnect