def daemons_start(self, run_daemons=True):
        result = True
        if run_daemons:
            logger.info("Alignak configured daemons start:")
        else:
            logger.info("Alignak configured daemons check:")
        for satellites_list in [self.conf.arbiters, self.conf.receivers, self.conf.reactionners,
                                self.conf.pollers, self.conf.brokers, self.conf.schedulers]:
            for satellite in satellites_list:
                logger.info("- found %s, to be launched: %s, address: %s",
                            satellite.name, satellite.alignak_launched, satellite.uri)
                if satellite == self.link_to_myself:
                    continue
                if satellite.alignak_launched and \
                        satellite.address not in ['127.0.0.1', 'localhost']:
                    logger.error("Alignak is required to launch a daemon for %s %s "
                                 "but the satelitte is defined on an external address: %s",
                                 satellite.type, satellite.name, satellite.address)
                    result = False
                    continue
                if not run_daemons:
                    continue
                if not satellite.alignak_launched:
                    logger.debug("Alignak will not launch '%s'")
                    continue
                if not satellite.active:
                    logger.warning("- daemon '%s' is declared but not set as active, "
                                   "do not start...", satellite.name)
                    continue
                if satellite.name in self.my_daemons:
                    logger.warning("- daemon '%s' is already running", satellite.name)
                    continue
                started = self.start_daemon(satellite)
                result = result and started
        return result