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

    if (!cluster.workers[worker.id]) {
      return;
    }

    // something is wrong with this worker.  Kill it!
    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 forkTimeoutHandler(worker, cluster) {
    verbose('worker %d is stuck in fork', worker.process.pid);

    if (!cluster.workers[worker.id]) {
      return;
    }

    // something is wrong with this worker.  Kill it!
    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 forkTimeoutHandler ( worker , cluster ) { verbose ( 'worker %d is stuck in fork' , worker . process . pid ) ; if ( ! cluster . workers [ worker . id ] ) { return ; } // something is wrong with this worker.  Kill it! 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 takes too long to fork

@private
@param worker
@param cluster
Called when worker takes too long to fork