From 952424217b0e0177362a7e9e00305abc22762a19 Mon Sep 17 00:00:00 2001 From: Eric Litak Date: Mon, 31 Jul 2017 07:15:02 -0700 Subject: [PATCH] ipfs: optionally manage ulimit -n in serviceConfig --- .../services/network-filesystems/ipfs.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix index f93f5bcb628..df8506dd3d4 100644 --- a/nixos/modules/services/network-filesystems/ipfs.nix +++ b/nixos/modules/services/network-filesystems/ipfs.nix @@ -8,6 +8,7 @@ let cfg = config.services.ipfs; ipfsFlags = toString ([ + (optionalString (cfg.serviceFdlimit != null) "--manage-fdlimit=true") (optionalString cfg.autoMount "--mount") (optionalString cfg.autoMigrate "--migrate") (optionalString cfg.enableGC "--enable-gc") @@ -129,6 +130,15 @@ in default = []; }; + serviceFdlimit = mkOption { + type = types.nullOr types.int; + default = null; + description = '' + The fdlimit for the IPFS systemd unit or `null` to have the daemon attempt to manage it. + ''; + example = 256*1024; + }; + }; }; @@ -219,7 +229,7 @@ in Group = cfg.group; Restart = "on-failure"; RestartSec = 1; - }; + } // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; }; }; systemd.services.ipfs-offline = { @@ -242,7 +252,7 @@ in Group = cfg.group; Restart = "on-failure"; RestartSec = 1; - }; + } // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; }; }; systemd.services.ipfs-norouting = { @@ -265,7 +275,7 @@ in Group = cfg.group; Restart = "on-failure"; RestartSec = 1; - }; + } // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; }; }; };