forked from MirrorHub/synapse
Correctly handle all command line options
This commit is contained in:
parent
f5d57d4848
commit
9ad448c1e5
3 changed files with 42 additions and 16 deletions
|
@ -63,12 +63,13 @@ def start_worker_reactor(appname, config):
|
||||||
|
|
||||||
start_reactor(
|
start_reactor(
|
||||||
appname,
|
appname,
|
||||||
config.soft_file_limit,
|
soft_file_limit=config.soft_file_limit,
|
||||||
config.gc_thresholds,
|
gc_thresholds=config.gc_thresholds,
|
||||||
config.worker_pid_file,
|
pid_file=config.worker_pid_file,
|
||||||
config.worker_daemonize,
|
daemonize=config.worker_daemonize,
|
||||||
config.worker_cpu_affinity,
|
cpu_affinity=config.worker_cpu_affinity,
|
||||||
logger,
|
print_pidfile=config.print_pidfile,
|
||||||
|
logger=logger,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -79,6 +80,7 @@ def start_reactor(
|
||||||
pid_file,
|
pid_file,
|
||||||
daemonize,
|
daemonize,
|
||||||
cpu_affinity,
|
cpu_affinity,
|
||||||
|
print_pidfile,
|
||||||
logger,
|
logger,
|
||||||
):
|
):
|
||||||
""" Run the reactor in the main process
|
""" Run the reactor in the main process
|
||||||
|
@ -93,6 +95,7 @@ def start_reactor(
|
||||||
pid_file (str): name of pid file to write to if daemonize is True
|
pid_file (str): name of pid file to write to if daemonize is True
|
||||||
daemonize (bool): true to run the reactor in a background process
|
daemonize (bool): true to run the reactor in a background process
|
||||||
cpu_affinity (int|None): cpu affinity mask
|
cpu_affinity (int|None): cpu affinity mask
|
||||||
|
print_pidfile (bool): whether to print the pid file, if daemonize is True
|
||||||
logger (logging.Logger): logger instance to pass to Daemonize
|
logger (logging.Logger): logger instance to pass to Daemonize
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -124,6 +127,9 @@ def start_reactor(
|
||||||
reactor.run()
|
reactor.run()
|
||||||
|
|
||||||
if daemonize:
|
if daemonize:
|
||||||
|
if print_pidfile:
|
||||||
|
print(pid_file)
|
||||||
|
|
||||||
daemon = Daemonize(
|
daemon = Daemonize(
|
||||||
app=appname,
|
app=appname,
|
||||||
pid=pid_file,
|
pid=pid_file,
|
||||||
|
|
|
@ -636,17 +636,15 @@ def run(hs):
|
||||||
# be quite busy the first few minutes
|
# be quite busy the first few minutes
|
||||||
clock.call_later(5 * 60, start_phone_stats_home)
|
clock.call_later(5 * 60, start_phone_stats_home)
|
||||||
|
|
||||||
if hs.config.daemonize and hs.config.print_pidfile:
|
|
||||||
print(hs.config.pid_file)
|
|
||||||
|
|
||||||
_base.start_reactor(
|
_base.start_reactor(
|
||||||
"synapse-homeserver",
|
"synapse-homeserver",
|
||||||
hs.config.soft_file_limit,
|
soft_file_limit=hs.config.soft_file_limit,
|
||||||
hs.config.gc_thresholds,
|
gc_thresholds=hs.config.gc_thresholds,
|
||||||
hs.config.pid_file,
|
pid_file=hs.config.pid_file,
|
||||||
hs.config.daemonize,
|
daemonize=hs.config.daemonize,
|
||||||
hs.config.cpu_affinity,
|
cpu_affinity=hs.config.cpu_affinity,
|
||||||
logger,
|
print_pidfile=hs.config.print_pidfile,
|
||||||
|
logger=logger,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ class WorkerConfig(Config):
|
||||||
if self.worker_app == "synapse.app.homeserver":
|
if self.worker_app == "synapse.app.homeserver":
|
||||||
self.worker_app = None
|
self.worker_app = None
|
||||||
|
|
||||||
self.worker_listeners = config.get("worker_listeners")
|
self.worker_listeners = config.get("worker_listeners", [])
|
||||||
self.worker_daemonize = config.get("worker_daemonize")
|
self.worker_daemonize = config.get("worker_daemonize")
|
||||||
self.worker_pid_file = config.get("worker_pid_file")
|
self.worker_pid_file = config.get("worker_pid_file")
|
||||||
self.worker_log_file = config.get("worker_log_file")
|
self.worker_log_file = config.get("worker_log_file")
|
||||||
|
@ -48,6 +48,17 @@ class WorkerConfig(Config):
|
||||||
self.worker_main_http_uri = config.get("worker_main_http_uri", None)
|
self.worker_main_http_uri = config.get("worker_main_http_uri", None)
|
||||||
self.worker_cpu_affinity = config.get("worker_cpu_affinity")
|
self.worker_cpu_affinity = config.get("worker_cpu_affinity")
|
||||||
|
|
||||||
|
# This option is really only here to support `--manhole` command line
|
||||||
|
# argument.
|
||||||
|
manhole = config.get("worker_manhole")
|
||||||
|
if manhole:
|
||||||
|
self.worker_listeners.append({
|
||||||
|
"port": manhole,
|
||||||
|
"bind_addresses": ["127.0.0.1"],
|
||||||
|
"type": "manhole",
|
||||||
|
"tls": False,
|
||||||
|
})
|
||||||
|
|
||||||
if self.worker_listeners:
|
if self.worker_listeners:
|
||||||
for listener in self.worker_listeners:
|
for listener in self.worker_listeners:
|
||||||
bind_address = listener.pop("bind_address", None)
|
bind_address = listener.pop("bind_address", None)
|
||||||
|
@ -59,5 +70,16 @@ class WorkerConfig(Config):
|
||||||
bind_addresses.append('')
|
bind_addresses.append('')
|
||||||
|
|
||||||
def read_arguments(self, args):
|
def read_arguments(self, args):
|
||||||
|
# We support a bunch of command line arguments that override options in
|
||||||
|
# the config. A lot of these options have a worker_* prefix when running
|
||||||
|
# on workers so we also have to override them when command line options
|
||||||
|
# are specified.
|
||||||
|
|
||||||
if args.daemonize is not None:
|
if args.daemonize is not None:
|
||||||
self.worker_daemonize = args.daemonize
|
self.worker_daemonize = args.daemonize
|
||||||
|
if args.log_config is not None:
|
||||||
|
self.worker_log_config = args.log_config
|
||||||
|
if args.log_file is not None:
|
||||||
|
self.worker_log_file = args.log_file
|
||||||
|
if args.manhole is not None:
|
||||||
|
self.worker_manhole = args.worker_manhole
|
||||||
|
|
Loading…
Reference in a new issue