Merge pull request #753 from matrix-org/markjh/daemon_pusher
Optionally daemonize the pusher
This commit is contained in:
commit
47571d11db
|
@ -37,6 +37,8 @@ from synapse.util.versionstring import get_version_string
|
||||||
from twisted.internet import reactor, defer
|
from twisted.internet import reactor, defer
|
||||||
from twisted.web.resource import Resource
|
from twisted.web.resource import Resource
|
||||||
|
|
||||||
|
from daemonize import Daemonize
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
@ -54,13 +56,19 @@ class SlaveConfig(DatabaseConfig):
|
||||||
self.start_pushers = True
|
self.start_pushers = True
|
||||||
self.listeners = config["listeners"]
|
self.listeners = config["listeners"]
|
||||||
self.soft_file_limit = config.get("soft_file_limit")
|
self.soft_file_limit = config.get("soft_file_limit")
|
||||||
|
self.daemonize = config.get("daemonize")
|
||||||
|
self.pid_file = self.abspath(config.get("pid_file"))
|
||||||
|
|
||||||
def default_config(self, **kwargs):
|
def default_config(self, server_name, **kwargs):
|
||||||
|
pid_file = self.abspath("pusher.pid")
|
||||||
return """\
|
return """\
|
||||||
## Slave ##
|
# Slave configuration
|
||||||
|
|
||||||
# The replication listener on the synapse to talk to.
|
# The replication listener on the synapse to talk to.
|
||||||
#replication_url: https://localhost:{replication_port}/_synapse/replication
|
#replication_url: https://localhost:{replication_port}/_synapse/replication
|
||||||
|
|
||||||
|
server_name: "%(server_name)s"
|
||||||
|
|
||||||
listeners: []
|
listeners: []
|
||||||
# Enable a ssh manhole listener on the pusher.
|
# Enable a ssh manhole listener on the pusher.
|
||||||
# - type: manhole
|
# - type: manhole
|
||||||
|
@ -75,7 +83,12 @@ class SlaveConfig(DatabaseConfig):
|
||||||
# compress: False
|
# compress: False
|
||||||
|
|
||||||
report_stats: False
|
report_stats: False
|
||||||
"""
|
|
||||||
|
daemonize: False
|
||||||
|
|
||||||
|
pid_file: %(pid_file)s
|
||||||
|
|
||||||
|
""" % locals()
|
||||||
|
|
||||||
|
|
||||||
class PusherSlaveConfig(SlaveConfig, LoggingConfig):
|
class PusherSlaveConfig(SlaveConfig, LoggingConfig):
|
||||||
|
@ -248,6 +261,9 @@ def setup(config_options):
|
||||||
sys.stderr.write("\n" + e.message + "\n")
|
sys.stderr.write("\n" + e.message + "\n")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
if not config:
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
config.setup_logging()
|
config.setup_logging()
|
||||||
|
|
||||||
database_engine = create_engine(config.database_config)
|
database_engine = create_engine(config.database_config)
|
||||||
|
@ -278,4 +294,20 @@ def setup(config_options):
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
with LoggingContext("main"):
|
with LoggingContext("main"):
|
||||||
ps = setup(sys.argv[1:])
|
ps = setup(sys.argv[1:])
|
||||||
reactor.run()
|
|
||||||
|
if ps.config.daemonize:
|
||||||
|
def run():
|
||||||
|
with LoggingContext("run"):
|
||||||
|
change_resource_limit(ps.config.soft_file_limit)
|
||||||
|
reactor.run()
|
||||||
|
|
||||||
|
daemon = Daemonize(
|
||||||
|
app="synapse-pusher",
|
||||||
|
pid=ps.config.pid_file,
|
||||||
|
action=run,
|
||||||
|
auto_close_fds=False,
|
||||||
|
verbose=True,
|
||||||
|
logger=logger,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
reactor.run()
|
||||||
|
|
Loading…
Reference in New Issue