vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / misc / preload.nix
blobd26e2c3d383e8cad172538facf3d2a8af43353ab
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
6   cfg = config.services.preload;
7 in {
8   meta = { maintainers = pkgs.preload.meta.maintainers; };
10   options.services.preload = {
11     enable = mkEnableOption "preload";
12     package = mkPackageOption pkgs "preload" { };
13   };
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" ];
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   };