Source: processEvents.js

var Logger = require('./Logger');
var debug = Logger.debug;
var verbose = Logger.verbose;
var error = Logger.error;
var info = Logger.info;
var master = require('./master');

/**
 * Register Process Events
 *
 * @module
 *
 * @author Kevin Smithson <ksmithson@sazze.com>
 * @author Craig Thayer <cthayer@sazze.com>
 */
module.exports = (function() {
  "use strict";

  var cluster = master.cluster;

  process.on('SIGTERM', function sigTerm() {
    verbose('SIGTERM recieved');
    master.shutdown();
  });

  process.on('SIGABRT', function sigAbort() {
    verbose('SIGABRT recieved');
    master.shutdown();
  });

  process.on('SIGINT', function sigInt() {
    verbose('SIGINT recieved');
    master.shutdown();
  });

  process.on('SIGHUP', function sigHup() {
    verbose('SIGHUP recieved');
    reload();
  });

  process.on('exit', function exit() {
    info('exiting node-pm');
    master.shutdown();
  });

  function reload() {
    verbose('Reloading...');

    //TODO reload the config

    master.restart(function reloadComplete() {
      info('all workers restarted');
    });
  }
})();