From 31baa00922528db1e2490d8d429f217d13e27928 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Wed, 14 Jan 2026 02:48:55 +0900 Subject: [PATCH] Restart both main process and workers on unexpected exit --- synapse-module/default.nix | 6 +++++- synapse-module/workers.nix | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/synapse-module/default.nix b/synapse-module/default.nix index 9867425..84c20f7 100644 --- a/synapse-module/default.nix +++ b/synapse-module/default.nix @@ -443,9 +443,14 @@ in User = "matrix-synapse"; Group = "matrix-synapse"; Slice = "system-matrix-synapse.slice"; + + Restart = "always"; + RestartSec = 3; + WorkingDirectory = cfg.dataDir; StateDirectory = "matrix-synapse"; RuntimeDirectory = "matrix-synapse"; + ExecStartPre = let flags = lib.cli.toCommandLineShellGNU {} { config-path = [ matrix-synapse-common-config ] ++ cfg.extraConfigFiles; @@ -460,7 +465,6 @@ in }; in "${wrapped}/bin/synapse_homeserver ${flags}"; ExecReload = "${lib.getExe' pkgs.coreutils "kill"} -HUP $MAINPID"; - Restart = "on-failure"; CapabilityBoundingSet = [ "" ]; LockPersonality = true; diff --git a/synapse-module/workers.nix b/synapse-module/workers.nix index 48d2fab..9f522a2 100644 --- a/synapse-module/workers.nix +++ b/synapse-module/workers.nix @@ -395,9 +395,14 @@ in { User = "matrix-synapse"; Group = "matrix-synapse"; Slice = "system-matrix-synapse.slice"; + + Restart = "always"; + RestartSec = 3; + WorkingDirectory = cfg.dataDir; RuntimeDirectory = "matrix-synapse"; StateDirectory = "matrix-synapse"; + ExecStartPre = pkgs.writers.writeBash "wait-for-synapse" '' # From https://md.darmstadt.ccc.de/synapse-at-work while ! systemctl is-active -q matrix-synapse.service; do