def start(collector_clazz, to_daemon=True, enable_server=True, server_port=8442): if is_running()[0]: print "Daemon already running." sys.exit(-1) #starts daemon context if to_daemon: d = daemon.DaemonContext(working_directory=os.getcwd()) d.open() try: #guarantees that libs are available in daemon context sys.path.append(__meta__.PATHS.values()) log = set_logging() log.info(ascii.ascii) log.info("Starting collector...") try: collector = collector_clazz(conf_reader.read_yaml_conf(), conf_reader.read_daemon_conf(), enable_server=enable_server, server_port=server_port) # write pid. write_pid(collector.daemon_conf['PID_FILE_PATH']) # read configurations. collector.prepare_readers_writers() except ConfigurationError, e: log.error(e.msg) sys.exit(-1) log.info("daemon_conf.py settings (missing values are replaced by defaults):\n %s" % pprint.pformat(collector.daemon_conf)) log.info("conf.yaml settings:\n %s" % pprint.pformat(collector.conf)) collector.start()
self.server.start() self.log.info('Web started.') except Exception, e: self.log.error("Cannot start server") self.log.error(traceback.format_exc()) sys.exit(-1) def start(self): """Starts the collector""" self.start_pairs() if self.enable_server: self.start_server() self.log.info("Collector started.") def __str__(self): return str(self.__dict__) if __name__ == '__main__': import conf_reader as cr import daemon_util as du du.set_logging() try: conf = cr.read_yaml_conf() daemon_conf = cr.read_daemon_conf() except ConfigurationError, e: print e.msg sys.exit(-1) Collector(conf=conf, daemon_conf=daemon_conf).start()