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