nixos/ups: add system-ups.slice (#338556)

h7x4 b12aa426 29768748

Changed files
+8
nixos
modules
services
monitoring
+8
nixos/modules/services/monitoring/ups.nix
···
else lib.unique (lib.forEach cfg.upsd.listen (listen: listen.port));
};
+
systemd.slices.system-ups = {
+
description = "Network UPS Tools (NUT) Slice";
+
documentation = [ "https://networkupstools.org/" ];
+
};
+
systemd.services.upsmon = let
secrets = lib.mapAttrsToList (name: monitor: "upsmon_password_${name}") cfg.upsmon.monitor;
createUpsmonConf = installSecrets upsmonConf "/run/nut/upsmon.conf" secrets;
···
ExecStart = "${pkgs.nut}/sbin/upsmon";
ExecReload = "${pkgs.nut}/sbin/upsmon -c reload";
LoadCredential = lib.mapAttrsToList (name: monitor: "upsmon_password_${name}:${monitor.passwordFile}") cfg.upsmon.monitor;
+
Slice = "system-ups.slice";
};
environment = envVars;
};
···
ExecStart = "${pkgs.nut}/sbin/upsd -u root";
ExecReload = "${pkgs.nut}/sbin/upsd -c reload";
LoadCredential = lib.mapAttrsToList (name: user: "upsdusers_password_${name}:${user.passwordFile}") cfg.users;
+
Slice = "system-ups.slice";
};
environment = envVars;
restartTriggers = [
···
RemainAfterExit = true;
# TODO: replace 'root' by another username.
ExecStart = "${pkgs.nut}/bin/upsdrvctl -u root start";
+
Slice = "system-ups.slice";
};
environment = envVars;
restartTriggers = [