vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / monitoring / monit.nix
blob379ee967620e0155778500282fa4136e93fe3e82
1 {config, pkgs, lib, ...}:
3 with lib;
5 let
6   cfg = config.services.monit;
7 in
10   options.services.monit = {
12     enable = mkEnableOption "Monit";
14     config = mkOption {
15       type = types.lines;
16       default = "";
17       description = "monitrc content";
18     };
20   };
22   config = mkIf cfg.enable {
24     environment.systemPackages = [ pkgs.monit ];
26     environment.etc.monitrc = {
27       text = cfg.config;
28       mode = "0400";
29     };
31     systemd.services.monit = {
32       description = "Pro-active monitoring utility for unix systems";
33       after = [ "network.target" ];
34       wantedBy = [ "multi-user.target" ];
35       serviceConfig = {
36         ExecStart = "${pkgs.monit}/bin/monit -I -c /etc/monitrc";
37         ExecStop = "${pkgs.monit}/bin/monit -c /etc/monitrc quit";
38         ExecReload = "${pkgs.monit}/bin/monit -c /etc/monitrc reload";
39         KillMode = "process";
40         Restart = "always";
41       };
42       restartTriggers = [ config.environment.etc.monitrc.source ];
43     };
45   };
47   meta.maintainers = with maintainers; [ ryantm ];