From 9df07753cef9dcc7f8aa08b3152bc62d95d01062 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 12 Jan 2016 17:27:21 +0300 Subject: swap service: don't restart mkswap.service on switches Sadly, we can't instruct systemd to properly restart device-name.swap when this service restarts (or I haven't found the way to do so). As of now blindly restarting it would only get you a bunch of errors about device already used -- let's avoid it. --- nixos/modules/config/swap.nix | 3 +++ 1 file changed, 3 insertions(+) (limited to 'nixos/modules/config/swap.nix') diff --git a/nixos/modules/config/swap.nix b/nixos/modules/config/swap.nix index 0ab5bb3d89c8..f0353c5a35ec 100644 --- a/nixos/modules/config/swap.nix +++ b/nixos/modules/config/swap.nix @@ -128,6 +128,7 @@ in wantedBy = [ "${realDevice'}.swap" ]; before = [ "${realDevice'}.swap" ]; path = [ pkgs.utillinux ] ++ optional sw.randomEncryption pkgs.cryptsetup; + script = '' ${optionalString (sw.size != null) '' @@ -145,11 +146,13 @@ in mkswap ${sw.realDevice} ''} ''; + unitConfig.RequiresMountsFor = [ "${dirOf sw.device}" ]; unitConfig.DefaultDependencies = false; # needed to prevent a cycle serviceConfig.Type = "oneshot"; serviceConfig.RemainAfterExit = sw.randomEncryption; serviceConfig.ExecStop = optionalString sw.randomEncryption "${pkgs.cryptsetup}/bin/cryptsetup luksClose ${sw.deviceName}"; + restartIfChanged = false; }; in listToAttrs (map createSwapDevice (filter (sw: sw.size != null || sw.randomEncryption) config.swapDevices)); -- cgit 1.4.1