code: def start_daemon(self, satellite):
          
          logger.info("  launching a daemon for: %s/%s...", satellite.type, satellite.name)
  
          # The daemon startup script location may be defined in the configuration
          daemon_script_location = getattr(self.conf, 'daemons_script_location', self.bindir)
          if not daemon_script_location:
              daemon_script_location = "alignak-%s" % satellite.type
          else:
              daemon_script_location = "%s/alignak-%s" % (daemon_script_location, satellite.type)
  
          # Some extra arguments may be defined in the Alignak configuration
          daemon_arguments = getattr(self.conf, 'daemons_arguments', '')
  
          args = [daemon_script_location,
                  "--name", satellite.name,
                  "--environment", self.env_filename,
                  "--host", str(satellite.host),
                  "--port", str(satellite.port)]
          if daemon_arguments:
              args.append(daemon_arguments)
          logger.info("  ... with some arguments: %s", args)
          try:
              process = psutil.Popen(args, stdin=None, stdout=None, stderr=None)
              # A brief pause...
              time.sleep(0.1)
          except Exception as exp:  # pylint: disable=broad-except
              logger.error("Error when launching %s: %s", satellite.name, exp)
              logger.error("Command: %s", args)
              return False
  
          logger.info("  %s launched (pid=%d, gids=%s)",
                      satellite.name, process.pid, process.gids())
  
          # My satellites/daemons map
          self.my_daemons[satellite.name] = {
              'satellite': satellite,
              'process': process
          }
          return True
docs: Manage the list of detected missing daemons
  
           If the daemon does not in exist `my_daemons`, then:
            - prepare daemon start arguments (port, name and log file)
            - start the daemon
            - make sure it started correctly
  
          :param satellite: the satellite for which a daemon is to be started
          :type satellite: SatelliteLink
  
          :return: True if the daemon started correctly