From 2bb0d725fcd8fe5c6c08a6663ff9832bf1526b8b Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 21 Jul 2026 20:13:21 +0900 Subject: [PATCH] modules/drumknotty: wrap services in infinite loops --- modules/drumknotty/default.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/drumknotty/default.nix b/modules/drumknotty/default.nix index 79e0a43..7e1209f 100644 --- a/modules/drumknotty/default.nix +++ b/modules/drumknotty/default.nix @@ -138,6 +138,15 @@ in ExecStart = let + mkRespawningCommand = name: command: pkgs.writeShellScript "drumknotty-${name}-watchdog" '' + while true; do + ${command} + echo + echo "${name} exited, restarting in 3s..." >&2 + sleep 3 + done + ''; + screenrc = let convertToFile = lines: lib.pipe lines [ lib.concatLists @@ -157,8 +166,7 @@ in config = "/etc/dibbler/dibbler.toml"; }; in lib.optionals cfg.dibbler.enable [ - "screen -t dibbler ${lib.getExe cfg.dibbler.package} ${dibblerArgs} loop" - + "screen -t dibbler ${mkRespawningCommand "dibbler" "${lib.getExe cfg.dibbler.package} ${dibblerArgs} loop"}" ]) (let @@ -166,7 +174,7 @@ in config = "/etc/worblehat/config.toml"; }; in lib.optionals cfg.worblehat.enable [ - "screen -t worblehat ${lib.getExe cfg.worblehat.package} ${worblehatArgs} cli" + "screen -t worblehat ${mkRespawningCommand "worblehat" "${lib.getExe cfg.worblehat.package} ${worblehatArgs} cli"}" ]) [ "select 0" ]