diff options
author | Jörg Thalheim <Mic92@users.noreply.github.com> | 2019-06-09 17:34:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-09 17:34:30 +0100 |
commit | 98e3b90b6c8f400ae5438ef868eb992a64b75ce5 (patch) | |
tree | 11ab71bd2b12b4c74cc15ffe647ec434bfc4adc0 /nixos/modules | |
parent | 9a7e890e31764bd7efbfff87a99d8ca69611042a (diff) | |
parent | 672495d5966bdfe15b397c994046e39d003e6a99 (diff) |
Merge pull request #62269 from dasJ/fix-bird-reload
nixos/bird: Fix reload
Diffstat (limited to 'nixos/modules')
-rw-r--r-- | nixos/modules/services/networking/bird.nix | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/nixos/modules/services/networking/bird.nix b/nixos/modules/services/networking/bird.nix index 555733aab7c0..4ae35875c0f0 100644 --- a/nixos/modules/services/networking/bird.nix +++ b/nixos/modules/services/networking/bird.nix @@ -14,15 +14,6 @@ let bird6 = "1.9.x with IPv6 suport"; bird2 = "2.x"; }.${variant}; - configFile = pkgs.stdenv.mkDerivation { - name = "${variant}.conf"; - text = cfg.config; - preferLocalBuild = true; - buildCommand = '' - echo -n "$text" > $out - ${pkg}/bin/${birdBin} -d -p -c $out - ''; - }; in { ###### interface options = { @@ -41,14 +32,24 @@ let ###### implementation config = mkIf cfg.enable { environment.systemPackages = [ pkg ]; + + environment.etc."bird/${variant}.conf".source = pkgs.writeTextFile { + name = "${variant}.conf"; + text = cfg.config; + checkPhase = '' + ${pkg}/bin/${birdBin} -d -p -c $out + ''; + }; + systemd.services.${variant} = { description = "BIRD Internet Routing Daemon (${descr})"; wantedBy = [ "multi-user.target" ]; reloadIfChanged = true; + restartTriggers = [ config.environment.etc."bird/${variant}.conf".source ]; serviceConfig = { Type = "forking"; Restart = "on-failure"; - ExecStart = "${pkg}/bin/${birdBin} -c ${configFile} -u ${variant} -g ${variant}"; + ExecStart = "${pkg}/bin/${birdBin} -c /etc/bird/${variant}.conf -u ${variant} -g ${variant}"; ExecReload = "${pkg}/bin/${birdc} configure"; ExecStop = "${pkg}/bin/${birdc} down"; CapabilityBoundingSet = [ "CAP_CHOWN" "CAP_FOWNER" "CAP_DAC_OVERRIDE" "CAP_SETUID" "CAP_SETGID" |