about summary refs log tree commit diff
path: root/nixos/modules/system
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-04-17 16:10:48 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-04-17 16:14:56 +0200
commit560a1103adf3834698c73cc98a5b70ec6aa3bbcc (patch)
tree09d86130862afcae12603bfaf3c2fb198548c341 /nixos/modules/system
parentbb9304e2806f316ce201d05416b3c4db975b62b3 (diff)
downloadnixlib-560a1103adf3834698c73cc98a5b70ec6aa3bbcc.tar
nixlib-560a1103adf3834698c73cc98a5b70ec6aa3bbcc.tar.gz
nixlib-560a1103adf3834698c73cc98a5b70ec6aa3bbcc.tar.bz2
nixlib-560a1103adf3834698c73cc98a5b70ec6aa3bbcc.tar.lz
nixlib-560a1103adf3834698c73cc98a5b70ec6aa3bbcc.tar.xz
nixlib-560a1103adf3834698c73cc98a5b70ec6aa3bbcc.tar.zst
nixlib-560a1103adf3834698c73cc98a5b70ec6aa3bbcc.zip
Add option ‘systemd.tmpfiles.rules’
This allows specifying rules for systemd-tmpfiles.

Also, enable systemd-tmpfiles-clean.timer so that stuff is cleaned up
automatically 15 minutes after boot and every day, *if* you have the
appropriate cleanup rules (which we don't have by default).
Diffstat (limited to 'nixos/modules/system')
-rw-r--r--nixos/modules/system/boot/stage-2.nix1
-rw-r--r--nixos/modules/system/boot/systemd.nix24
2 files changed, 25 insertions, 0 deletions
diff --git a/nixos/modules/system/boot/stage-2.nix b/nixos/modules/system/boot/stage-2.nix
index 2616c8649d55..f2a177fbdbc1 100644
--- a/nixos/modules/system/boot/stage-2.nix
+++ b/nixos/modules/system/boot/stage-2.nix
@@ -79,6 +79,7 @@ in
         '';
       };
 
+      # FIXME: should replace this with something that uses systemd-tmpfiles.
       cleanTmpDir = mkOption {
         type = types.bool;
         default = false;
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index 5f07d6482b7f..5d144a3642bc 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -143,6 +143,7 @@ let
 
       # Temporary file creation / cleanup.
       "systemd-tmpfiles-clean.service"
+      "systemd-tmpfiles-clean.timer"
       "systemd-tmpfiles-setup.service"
       "systemd-tmpfiles-setup-dev.service"
     ]
@@ -629,6 +630,22 @@ in
       '';
     };
 
+    systemd.tmpfiles.rules = mkOption {
+      type = types.listOf types.str;
+      default = [];
+      example = [ "d /tmp 1777 root root 10d" ];
+      description = ''
+        Rules for creating and cleaning up temporary files
+        automatically. See
+        <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+        for the exact format. You should not use this option to create
+        files required by systemd services, since there is no
+        guarantee that <command>systemd-tmpfiles</command> runs when
+        the system is reconfigured using
+        <command>nixos-rebuild</command>.
+      '';
+    };
+
   };
 
 
@@ -747,5 +764,12 @@ in
 
     environment.etc."tmpfiles.d/x11.conf".source = "${systemd}/example/tmpfiles.d/x11.conf";
 
+    environment.etc."tmpfiles.d/nixos.conf".text =
+      ''
+        # This file is created automatically and should not be modified.
+        # Please change the option ‘systemd.tmpfiles.rules’ instead.
+        ${concatStringsSep "\n" cfg.tmpfiles.rules}
+      '';
+
   };
 }