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