diff options
author | William A. Kennington III <william@wkennington.com> | 2014-06-27 01:45:04 -0500 |
---|---|---|
committer | William A. Kennington III <william@wkennington.com> | 2014-08-24 03:12:55 -0700 |
commit | aa77fe0fb0f2b6636a57fd2ced4afd6636b4c1e1 (patch) | |
tree | 09a9f3a8173ed8e8ad17a0179976171db961c0f5 /nixos/modules/services/networking/radvd.nix | |
parent | 4da69cb7da731b2728edfa11ee758dff8f459b3e (diff) | |
download | nixlib-aa77fe0fb0f2b6636a57fd2ced4afd6636b4c1e1.tar nixlib-aa77fe0fb0f2b6636a57fd2ced4afd6636b4c1e1.tar.gz nixlib-aa77fe0fb0f2b6636a57fd2ced4afd6636b4c1e1.tar.bz2 nixlib-aa77fe0fb0f2b6636a57fd2ced4afd6636b4c1e1.tar.lz nixlib-aa77fe0fb0f2b6636a57fd2ced4afd6636b4c1e1.tar.xz nixlib-aa77fe0fb0f2b6636a57fd2ced4afd6636b4c1e1.tar.zst nixlib-aa77fe0fb0f2b6636a57fd2ced4afd6636b4c1e1.zip |
nixos/radvd: Convert to a systemd unit
Additionally, remove the automatic initialization of the ipv6 forwarding sysctl as this should be handled by the end user. This really should not be an issue as most people running radvd are likely forwarding ipv6 packets.
Diffstat (limited to 'nixos/modules/services/networking/radvd.nix')
-rw-r--r-- | nixos/modules/services/networking/radvd.nix | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/nixos/modules/services/networking/radvd.nix b/nixos/modules/services/networking/radvd.nix index 08762c9c8372..0199502163a3 100644 --- a/nixos/modules/services/networking/radvd.nix +++ b/nixos/modules/services/networking/radvd.nix @@ -52,24 +52,32 @@ in config = mkIf cfg.enable { - environment.systemPackages = [ pkgs.radvd ]; + users.extraUsers.radvd = + { uid = config.ids.uids.radvd; + description = "Router Advertisement Daemon User"; + }; - jobs.radvd = + systemd.services.radvd = { description = "IPv6 Router Advertisement Daemon"; - startOn = "started network-interfaces"; + wantedBy = [ "multi-user.target" ]; + + after = [ "network.target" ]; - preStart = - '' - # !!! Radvd only works if IPv6 forwarding is enabled. But - # this should probably be done somewhere else (and not - # necessarily for all interfaces). - echo 1 > /proc/sys/net/ipv6/conf/all/forwarding - ''; + path = [ pkgs.radvd ]; - exec = "${pkgs.radvd}/sbin/radvd -m syslog -s -C ${confFile}"; + preStart = '' + mkdir -m 755 -p /run/radvd + chown radvd /run/radvd + ''; - daemonType = "fork"; + serviceConfig = + { ExecStart = "@${pkgs.radvd}/sbin/radvd radvd" + + " -p /run/radvd/radvd.pid -m syslog -u radvd -C ${confFile}"; + Restart = "always"; + Type = "forking"; + PIDFile = "/run/radvd/radvd.pid"; + }; }; }; |