From 2a57f335f2fa1625b58a44d1ef93730190b74153 Mon Sep 17 00:00:00 2001 From: Dmitry <1315874+dniku@users.noreply.github.com> Date: Sat, 13 Jun 2026 10:21:10 +0100 Subject: [PATCH] Cap deluged restarts at 2 `StartLimit` does not exactly cap the number of retries; instead, it specifies a window at the beginning of the service lifespan when the number of retries is capped. Also assert later that the number of restarts is at most 1. --- test/services/deluge.nix | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/test/services/deluge.nix b/test/services/deluge.nix index e98f923..63357de 100644 --- a/test/services/deluge.nix +++ b/test/services/deluge.nix @@ -25,6 +25,14 @@ let '' print(${node.name}.succeed('journalctl -n100 -u deluged')) print(${node.name}.succeed('systemctl status deluged')) + ${node.name}.succeed(""" + restarts="$(systemctl show deluged.service -P NRestarts)" + if [ "$restarts" -gt 1 ]; then + systemctl status deluged.service --no-pager + journalctl -u deluged.service -b --no-pager + exit 1 + fi + """) print(${node.name}.succeed('systemctl status delugeweb')) with subtest("web connect"): @@ -109,9 +117,16 @@ let settings.content = "localpw"; }; - systemd.services.deluged.serviceConfig = { - Restart = lib.mkForce "on-failure"; - RestartSec = "1s"; + systemd.services.deluged = { + unitConfig = { + StartLimitIntervalSec = "30s"; + StartLimitBurst = 2; + }; + + serviceConfig = { + Restart = lib.mkForce "on-failure"; + RestartSec = "1s"; + }; }; };