at 25.11-pre 816 B view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7let 8 cfg = config.services.preload; 9in 10{ 11 meta = { 12 maintainers = pkgs.preload.meta.maintainers; 13 }; 14 15 options.services.preload = { 16 enable = lib.mkEnableOption "preload"; 17 package = lib.mkPackageOption pkgs "preload" { }; 18 }; 19 20 config = lib.mkIf cfg.enable { 21 systemd.services.preload = { 22 description = "Loads data into ram during idle time of CPU."; 23 wantedBy = [ "multi-user.target" ]; 24 25 serviceConfig = { 26 EnvironmentFile = "${cfg.package}/etc/conf.d/preload"; 27 ExecStart = "${lib.getExe cfg.package} -l '' --foreground $PRELOAD_OPTS"; 28 Type = "simple"; 29 # Only preload data during CPU idle time 30 IOSchedulingClass = 3; 31 DynamicUser = true; 32 StateDirectory = "preload"; 33 }; 34 }; 35 }; 36}