diff options
author | Mark Haines <mark.haines@matrix.org> | 2016-04-26 15:37:41 +0100 |
---|---|---|
committer | Mark Haines <mark.haines@matrix.org> | 2016-04-26 15:37:41 +0100 |
commit | 6df5a6a833620a6388c90850be4d457bc4c5c4eb (patch) | |
tree | 03a06992b41cff9fc1a8543f983fc20023f8d79c /synapse/app | |
parent | Merge pull request #750 from matrix-org/erikj/jwt_optional (diff) | |
download | synapse-6df5a6a833620a6388c90850be4d457bc4c5c4eb.tar.xz |
Optionally daemonize the pusher
Diffstat (limited to '')
-rw-r--r-- | synapse/app/pusher.py | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/synapse/app/pusher.py b/synapse/app/pusher.py index 9381fe2251..5f3200cf4c 100644 --- a/synapse/app/pusher.py +++ b/synapse/app/pusher.py @@ -37,6 +37,8 @@ from synapse.util.versionstring import get_version_string from twisted.internet import reactor, defer from twisted.web.resource import Resource +from daemonize import Daemonize + import sys import logging @@ -54,13 +56,19 @@ class SlaveConfig(DatabaseConfig): self.start_pushers = True self.listeners = config["listeners"] 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 """\ - ## Slave ## + # Slave configuration + # The replication listener on the synapse to talk to. #replication_url: https://localhost:{replication_port}/_synapse/replication + server_name: "%(server_name)s" + listeners: [] # Enable a ssh manhole listener on the pusher. # - type: manhole @@ -75,7 +83,12 @@ class SlaveConfig(DatabaseConfig): # compress: False report_stats: False - """ + + daemonize: False + + pid_file: %(pid_file)s + + """ % locals() class PusherSlaveConfig(SlaveConfig, LoggingConfig): @@ -248,6 +261,9 @@ def setup(config_options): sys.stderr.write("\n" + e.message + "\n") sys.exit(1) + if not config: + sys.exit(0) + config.setup_logging() database_engine = create_engine(config.database_config) @@ -278,4 +294,15 @@ def setup(config_options): if __name__ == '__main__': with LoggingContext("main"): ps = setup(sys.argv[1:]) - reactor.run() + + if ps.config.daemonize: + daemon = Daemonize( + app="synapse-pusher", + pid=ps.config.pid_file, + action=reactor.run, + auto_close_fds=False, + verbose=True, + logger=logger, + ) + else: + reactor.run() |