def run(self, once=False, **kwargs): """Run the daemon""" utils.validate_configuration() utils.drop_privileges(self.conf.get('user', 'chase')) utils.capture_stdio(self.logger, **kwargs) def kill_children(*args): signal.signal(signal.SIGTERM, signal.SIG_IGN) os.killpg(0, signal.SIGTERM) sys.exit() signal.signal(signal.SIGTERM, kill_children) if once: self.run_once(**kwargs) else: self.run_forever(**kwargs)
# TODO: pull pieces of this out to test def run_wsgi(conf_file, app_section, *args, **kwargs): """ Loads common settings from conf, then instantiates app and runs the server using the specified number of workers. :param conf_file: Path to paste.deploy style configuration file :param app_section: App name from conf file to load config from """ try: conf = appconfig('config:%s' % conf_file, name=app_section) except Exception, e: print "Error trying to load config %s: %s" % (conf_file, e) return validate_configuration() # pre-configure logger log_name = conf.get('log_name', app_section) if 'logger' in kwargs: logger = kwargs.pop('logger') else: logger = get_logger(conf, log_name, log_to_console=kwargs.pop('verbose', False), log_route='wsgi') # bind to address and port sock = get_socket(conf, default_port=kwargs.get('default_port', 8080)) # remaining tasks should not require elevated privileges drop_privileges(conf.get('user', 'chase'))
# TODO: pull pieces of this out to test def run_wsgi(conf_file, app_section, *args, **kwargs): """ Loads common settings from conf, then instantiates app and runs the server using the specified number of workers. :param conf_file: Path to paste.deploy style configuration file :param app_section: App name from conf file to load config from """ try: conf = appconfig("config:%s" % conf_file, name=app_section) except Exception, e: print "Error trying to load config %s: %s" % (conf_file, e) return validate_configuration() # pre-configure logger log_name = conf.get("log_name", app_section) if "logger" in kwargs: logger = kwargs.pop("logger") else: logger = get_logger(conf, log_name, log_to_console=kwargs.pop("verbose", False), log_route="wsgi") # bind to address and port sock = get_socket(conf, default_port=kwargs.get("default_port", 8080)) # remaining tasks should not require elevated privileges drop_privileges(conf.get("user", "chase")) # Ensure the application can be loaded before proceeding. loadapp("config:%s" % conf_file, global_conf={"log_name": log_name})
def __init__(self, pickle_gz_path, reload_time=15): # can't use the ring unless HASH_PATH_SUFFIX is set validate_configuration() self.pickle_gz_path = pickle_gz_path self.reload_time = reload_time self._reload(force=True)