code: def do_stop(self):
          
          logger.info("Stopping %s...", self.name)
  
          if self.sync_manager:
              logger.info("Shutting down synchronization manager...")
              self.sync_manager.shutdown()
              self.sync_manager = None
  
          # Maybe the modules manager is not even created!
          if self.modules_manager:
              logger.info("Shutting down modules manager...")
              self.modules_manager.stop_all()
  
          # todo: daemonize the process thanks to CherryPy plugin
          if self.http_daemon:
              logger.info("Shutting down HTTP daemon...")
              if self.http_daemon.cherrypy_thread:
                  self.http_daemon.stop()
              self.http_daemon = None
  
          # todo: daemonize the process thanks to CherryPy plugin
          if self.http_thread:
              logger.info("Checking HTTP thread...")
              # Let a few seconds to exit
              self.http_thread.join(timeout=3)
              if self.http_thread.is_alive():  # pragma: no cover, should never happen...
                  logger.warning("HTTP thread did not terminated. Force stopping the thread..")
                  # try:
                  #     self.http_thread._Thread__stop()  # pylint: disable=E1101
                  # except Exception as exp:  # pylint: disable=broad-except
                  #     print("Exception: %s" % exp)
              else:
                  logger.debug("HTTP thread exited")
              self.http_thread = None
docs: Execute the stop of this daemon:
           - request the daemon to stop
           - request the http thread to stop, else force stop the thread
           - Close the http socket
           - Shutdown the manager
           - Stop and join all started "modules"
  
          :return: None