code: function install(cleanupHandler, stderrMessages)
  {
      if (cleanupHandler) {
          if (typeof cleanupHandler === 'object') {
              stderrMessages = cleanupHandler;
              cleanupHandler = null;
          }
      }
      else if (!stderrMessages)
          stderrMessages = DEFAULT_MESSAGES;
      
      if (stderrMessages) {
          if (messages === null)
              messages = { ctrl_C: '', uncaughtException: '' };
          if (typeof stderrMessages.ctrl_C === 'string')
              messages.ctrl_C = stderrMessages.ctrl_C;
          if (typeof stderrMessages.uncaughtException === 'string')
              messages.uncaughtException = stderrMessages.uncaughtException;
      }
      
      if (cleanupHandlers === null) {
          cleanupHandlers = []; // establish before installing handlers
          
          sigintHandler = signalHandler.bind(this, 'SIGINT');
          sighupHandler = signalHandler.bind(this, 'SIGHUP');
          sigquitHandler = signalHandler.bind(this, 'SIGQUIT');
          sigtermHandler = signalHandler.bind(this, 'SIGTERM');
          
          process.on('SIGINT', sigintHandler);
          process.on('SIGHUP', sighupHandler);
          process.on('SIGQUIT', sigquitHandler);
          process.on('SIGTERM', sigtermHandler);
          process.on('uncaughtException', exceptionHandler);
          process.on('exit', exitHandler);
  
          cleanupHandlers.push(cleanupHandler || noCleanup);
      }
      else if (cleanupHandler)
          cleanupHandlers.push(cleanupHandler);
  }
docs: // MAIN /////////////////////////////////////////////////////////////////////