diff --git a/nixos/modules/services/networking/firewalld/default.nix b/nixos/modules/services/networking/firewalld/default.nix index e0e8bf4cb47c..aa6217db21ab 100644 --- a/nixos/modules/services/networking/firewalld/default.nix +++ b/nixos/modules/services/networking/firewalld/default.nix @@ -57,7 +57,19 @@ in systemd.services.firewalld = { aliases = [ "dbus-org.fedoraproject.FirewallD1.service" ]; wantedBy = [ "multi-user.target" ]; - serviceConfig.ExecReload = "${lib.getExe' pkgs.coreutils "kill"} -HUP $MAINPID"; + serviceConfig.ExecReload = [ + "" + "${lib.getExe' pkgs.coreutils "kill"} -HUP $MAINPID" + ]; + reloadTriggers = [ + config.environment.etc."firewalld/firewalld.conf".source + ] + ++ lib.mapAttrsToList ( + name: _: config.environment.etc."firewalld/zones/${name}.xml".source + ) config.services.firewalld.zones + ++ lib.mapAttrsToList ( + name: _: config.environment.etc."firewalld/services/${name}.xml".source + ) config.services.firewalld.services; environment.NIX_FIREWALLD_CONFIG_PATH = "${paths}/lib/firewalld"; }; };