summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services
diff options
context:
space:
mode:
authorJörg Thalheim <Mic92@users.noreply.github.com>2019-06-09 17:34:30 +0100
committerGitHub <noreply@github.com>2019-06-09 17:34:30 +0100
commit98e3b90b6c8f400ae5438ef868eb992a64b75ce5 (patch)
tree11ab71bd2b12b4c74cc15ffe647ec434bfc4adc0 /nixos/modules/services
parent9a7e890e31764bd7efbfff87a99d8ca69611042a (diff)
parent672495d5966bdfe15b397c994046e39d003e6a99 (diff)
Merge pull request #62269 from dasJ/fix-bird-reload
nixos/bird: Fix reload
Diffstat (limited to 'nixos/modules/services')
-rw-r--r--nixos/modules/services/networking/bird.nix21
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"