|
|
@@ -0,0 +1,33 @@
|
|
|
+{ lib, pkgs, ... }:
|
|
|
+let
|
|
|
+ disks = [
|
|
|
+ "/dev/disk/by-id/ata-ST8000VN002-2ZM188_WPV023WG"
|
|
|
+ "/dev/disk/by-id/ata-ST8000VN002-2ZM188_WPV07RMA"
|
|
|
+ "/dev/disk/by-id/ata-ST8000VN002-2ZM188_WPV020CG"
|
|
|
+ ];
|
|
|
+
|
|
|
+ mkArgString = disks:
|
|
|
+ lib.concatStringsSep " " (lib.map (disk: "-a ${disk} -i 600") disks);
|
|
|
+
|
|
|
+ args = mkArgString disks;
|
|
|
+in
|
|
|
+{
|
|
|
+ environment.systemPackages = [ pkgs.hd-idle ];
|
|
|
+
|
|
|
+ systemd.services.hd-idle = {
|
|
|
+ description = "hd-idle - spin down idle hard disks";
|
|
|
+ after = [
|
|
|
+ "suspend.target"
|
|
|
+ "hibernate.target"
|
|
|
+ "hybrid-sleep.target"
|
|
|
+ "suspend-then-hibernate.target"
|
|
|
+ ];
|
|
|
+ wantedBy = [ "multi-user.target" ];
|
|
|
+
|
|
|
+ serviceConfig = {
|
|
|
+ Type = "simple";
|
|
|
+ ExecStart = "${lib.getExe pkgs.hd-idle} ${args}";
|
|
|
+ Restart = "always";
|
|
|
+ };
|
|
|
+ };
|
|
|
+}
|