synapse workers: supply systemd with actual worker PIDs (requires jq)
also, worker.yaml.j2: - hone worker_name - remove worker_pid_file entry (would only be used if worker_daemonize set to true; also, synapse only knows about the container namespace and thus can not provide the required host-view PID)
This commit is contained in:
@ -3,8 +3,8 @@
|
||||
# alongside the homeserver main process.
|
||||
# c.f. https://github.com/matrix-org/synapse/pull/4662
|
||||
[Unit]
|
||||
Description=Synapse Matrix Worker
|
||||
AssertPathExists={{matrix_synapse_config_dir_path }}/worker.%i.yaml
|
||||
Description=Matrix worker synapse.app.%i
|
||||
AssertPathExists={{ matrix_synapse_config_dir_path }}/worker.%i.yaml
|
||||
After=matrix-synapse.service
|
||||
BindsTo=matrix-synapse.service
|
||||
|
||||
@ -23,9 +23,13 @@ ExecStart=/bin/sh -c "WORKER=%i; WORKER=$${WORKER%%:*}; \
|
||||
matrix-synapse \
|
||||
python -m synapse.app.$${WORKER} -c /data/homeserver.yaml -c /data/worker.%i.yaml"
|
||||
|
||||
# wait for worker startup & write out PID of actual worker process so systemd can handle it
|
||||
ExecStartPost=/bin/sleep 5
|
||||
ExecStartPost=/usr/local/bin/matrix-synapse-worker-write-pid %i /run/matrix-synapse-worker.%i.pid
|
||||
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
ExecStop=/usr/bin/docker exec matrix-synapse pkill -f %i
|
||||
PIDFile=/matrix-run/{{ item.worker }}.port{{ item.port }}.pid
|
||||
ExecStop=/bin/kill $MAINPID
|
||||
PIDFile=/run/matrix-synapse-worker.%i.pid
|
||||
KillMode=process
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
Reference in New Issue
Block a user