def __init__(self, **kwargs): super(WebServer, self).__init__() if not debug_mode: Logger.redirect_all_logging_to_file(root.common.web.log_file, backups=root.common.web.log_backups) self.application = web.Application( [ ("/service", ServiceHandler, {"server": self}), ("/update", UpdateHandler, {"server": self}), ("/logs.html?.*", LogsHandler, {"server": self}), (r"/((js|css|fonts|img|maps)/.*)", web.StaticFileHandler, {"path": root.common.web.root}), (r"/(.+\.html)", web.StaticFileHandler, {"path": root.common.web.root}), ("/", web.RedirectHandler, {"url": "/status.html", "permanent": True}), ("", web.RedirectHandler, {"url": "/status.html", "permanent": True}), ], template_path=root.common.web.templates, gzip=not debug_mode, ) self._port = kwargs.get("port", root.common.web.port) self.application.listen(self._port) self.masters = {} self.motor = motor.MotorClient("mongodb://" + kwargs.get("mongodb", root.common.mongodb_logging_address)) self.db = self.motor.veles self.ensure_mongo_indexes() self.mongo_drop_time_threshold = kwargs.get("mongo_drop_time_threshold", root.common.web.drop_time) self.mongo_dropper = PeriodicCallback(self.drop_old_mongo_records, self.mongo_drop_time_threshold * 1000)
def __init__(self, **kwargs): super(WebServer, self).__init__() if not debug_mode: Logger.redirect_all_logging_to_file( root.common.web.log_file, backups=root.common.web.log_backups) self.application = web.Application( [("/service", ServiceHandler, { "server": self }), ("/update", UpdateHandler, { "server": self }), ("/logs.html?.*", LogsHandler, { "server": self }), (r"/((js|css|fonts|img|maps)/.*)", web.StaticFileHandler, { 'path': root.common.web.root }), (r"/(.+\.html)", web.StaticFileHandler, { 'path': root.common.web.root }), ("/", web.RedirectHandler, { "url": "/status.html", "permanent": True }), ("", web.RedirectHandler, { "url": "/status.html", "permanent": True })], template_path=root.common.web.templates, gzip=not debug_mode) self._port = kwargs.get("port", root.common.web.port) self.application.listen(self._port) self.masters = {} self.motor = motor.MotorClient( "mongodb://" + kwargs.get("mongodb", root.common.mongodb_logging_address)) self.db = self.motor.veles self.ensure_mongo_indexes() self.mongo_drop_time_threshold = kwargs.get( "mongo_drop_time_threshold", root.common.web.drop_time) self.mongo_dropper = PeriodicCallback( self.drop_old_mongo_records, self.mongo_drop_time_threshold * 1000)
raise PermissionError(pidfile) if os.path.exists(full_pidfile): real_pidfile = os.readlink(full_pidfile) pid = int(real_pidfile.split('.')[-1]) print("Replacing PID %d..." % pid) try: os.kill(pid, 0) except OSError: os.remove(real_pidfile) os.remove(full_pidfile) print_("Detected a stale lock file %s" % real_pidfile, file=sys.stderr) else: raise FileExistsError(full_pidfile) print("Daemonizing, PID will be referenced by ", full_pidfile) try: sys.stdout.flush() except BrokenPipeError: pass with daemon.DaemonContext(pidfile=pidfile, stderr=sys.stderr, uid=args.user, gid=args.group): log_file = root.common.web.log_file Logger.setup_logging(level=logging.INFO) Logger.redirect_all_logging_to_file(log_file, backups=9) main(port=args.port) else: Logger.setup_logging(level=logging.DEBUG) main(port=args.port)
if not debug_mode: pidfile = root.common.web.pidfile full_pidfile = pidfile + ".lock" if args.user is None and not os.access(os.path.dirname(full_pidfile), os.W_OK): raise PermissionError(pidfile) if os.path.exists(full_pidfile): real_pidfile = os.readlink(full_pidfile) pid = int(real_pidfile.split(".")[-1]) print("Replacing PID %d..." % pid) try: os.kill(pid, 0) except OSError: os.remove(real_pidfile) os.remove(full_pidfile) print_("Detected a stale lock file %s" % real_pidfile, file=sys.stderr) else: raise FileExistsError(full_pidfile) print("Daemonizing, PID will be referenced by ", full_pidfile) try: sys.stdout.flush() except BrokenPipeError: pass with daemon.DaemonContext(pidfile=pidfile, stderr=sys.stderr, uid=args.user, gid=args.group): log_file = root.common.web.log_file Logger.setup_logging(level=logging.INFO) Logger.redirect_all_logging_to_file(log_file, backups=9) main(port=args.port) else: Logger.setup_logging(level=logging.DEBUG) main(port=args.port)