docs: def run(self):
          "sets up the desired services and runs the requested action"
          self.addServices()
          self.catalogServers(self.hendrix)
          action = self.action
          fd = self.options['fd']
  
          if action.startswith('start'):
              chalk.blue(self._listening_message())
              getattr(self, action)(fd)
  
              ###########################
              # annnnd run the reactor! #
              ###########################
              try:
                  self.reactor.run()
              finally:
                  shutil.rmtree(PID_DIR, ignore_errors=True)  # cleanup tmp PID dir
  
          elif action == 'restart':
              getattr(self, action)(fd=fd)
          else:
              getattr(self, action)()