nixos/bees: sync service configuration with upstream (#348054)

Changed files
+19 -32
nixos
modules
services
misc
+19 -32
nixos/modules/services/misc/bees.nix
···
'';
};
};
-
config = {
+
config = lib.mkIf (cfg.filesystems != { }) {
+
systemd.packages = [ pkgs.bees ];
systemd.services = lib.mapAttrs' (
name: fs:
lib.nameValuePair "beesd@${name}" {
-
description = "Block-level BTRFS deduplication for %i";
-
after = [ "sysinit.target" ];
-
-
serviceConfig =
-
let
-
configOpts = [
-
fs.spec
-
"verbosity=${toString fs.verbosity}"
-
"idxSizeMB=${toString fs.hashTableSizeMB}"
-
"workDir=${fs.workDir}"
+
overrideStrategy = "asDropin";
+
serviceConfig = {
+
ExecStart =
+
let
+
configOpts = [
+
fs.spec
+
"verbosity=${toString fs.verbosity}"
+
"idxSizeMB=${toString fs.hashTableSizeMB}"
+
"workDir=${fs.workDir}"
+
];
+
configOptsStr = lib.escapeShellArgs configOpts;
+
in
+
[
+
""
+
"${pkgs.bees}/bin/bees-service-wrapper run ${configOptsStr} -- --no-timestamps ${lib.escapeShellArgs fs.extraOptions}"
];
-
configOptsStr = lib.escapeShellArgs configOpts;
-
in
-
{
-
# Values from https://github.com/Zygo/bees/blob/v0.6.5/scripts/beesd@.service.in
-
ExecStart = "${pkgs.bees}/bin/bees-service-wrapper run ${configOptsStr} -- --no-timestamps ${lib.escapeShellArgs fs.extraOptions}";
-
ExecStopPost = "${pkgs.bees}/bin/bees-service-wrapper cleanup ${configOptsStr}";
-
CPUAccounting = true;
-
CPUSchedulingPolicy = "batch";
-
CPUWeight = 12;
-
IOSchedulingClass = "idle";
-
IOSchedulingPriority = 7;
-
IOWeight = 10;
-
KillMode = "control-group";
-
KillSignal = "SIGTERM";
-
MemoryAccounting = true;
-
Nice = 19;
-
Restart = "on-abnormal";
-
StartupCPUWeight = 25;
-
StartupIOWeight = 25;
-
SyslogIdentifier = "beesd"; # would otherwise be "bees-service-wrapper"
-
};
+
SyslogIdentifier = "beesd"; # would otherwise be "bees-service-wrapper"
+
};
unitConfig.RequiresMountsFor = lib.mkIf (lib.hasPrefix "/" fs.spec) fs.spec;
wantedBy = [ "multi-user.target" ];
}