diff options
author | Nikolay Amiantov <ab@fmap.me> | 2015-11-11 16:18:38 +0300 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2015-11-11 16:18:57 +0300 |
commit | 98008623976f676dc28f9aa1af424979312ed635 (patch) | |
tree | 9c0574b92f94dc5c4b1f16ae601ecb050b3b4df7 /nixos/modules/services/misc/autofs.nix | |
parent | 360e8008f20723846eca1d40b2236b0469414c97 (diff) |
nixos/autofs: revive and update to systemd
Diffstat (limited to 'nixos/modules/services/misc/autofs.nix')
-rw-r--r-- | nixos/modules/services/misc/autofs.nix | 45 |
1 files changed, 7 insertions, 38 deletions
diff --git a/nixos/modules/services/misc/autofs.nix b/nixos/modules/services/misc/autofs.nix index f4a1059d09f0d..b4dae79cf8a90 100644 --- a/nixos/modules/services/misc/autofs.nix +++ b/nixos/modules/services/misc/autofs.nix @@ -71,48 +71,17 @@ in config = mkIf cfg.enable { - environment.etc = singleton - { target = "auto.master"; - source = pkgs.writeText "auto.master" cfg.autoMaster; - }; - boot.kernelModules = [ "autofs4" ]; - jobs.autofs = + systemd.services.autofs = { description = "Filesystem automounter"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; - startOn = "started network-interfaces"; - stopOn = "stopping network-interfaces"; - - path = [ pkgs.nfs-utils pkgs.sshfsFuse ]; - - preStop = - '' - set -e; while :; do pkill -TERM automount; sleep 1; done - ''; - - # automount doesn't clean up when receiving SIGKILL. - # umount -l should unmount the directories recursively when they are no longer used - # It does, but traces are left in /etc/mtab. So unmount recursively.. - postStop = - '' - PATH=${pkgs.gnused}/bin:${pkgs.coreutils}/bin - exec &> /tmp/logss - # double quote for sed: - escapeSpaces(){ sed 's/ /\\\\040/g'; } - unescapeSpaces(){ sed 's/\\040/ /g'; } - sed -n 's@^\s*\(\([^\\ ]\|\\ \)*\)\s.*@\1@p' ${autoMaster} | sed 's/[\\]//' | while read mountPoint; do - sed -n "s@[^ ]\+\s\+\($(echo "$mountPoint"| escapeSpaces)[^ ]*\).*@\1@p" /proc/mounts | sort -r | unescapeSpaces| while read smountP; do - ${pkgs.utillinux}/bin/umount -l "$smountP" || true - done - done - ''; - - script = - '' - ${if cfg.debug then "exec &> /var/log/autofs" else ""} - exec ${pkgs.autofs5}/sbin/automount ${if cfg.debug then "-d" else ""} -f -t ${builtins.toString cfg.timeout} "${autoMaster}" ${if cfg.debug then "-l7" else ""} - ''; + serviceConfig = { + ExecStart = "${pkgs.autofs5}/sbin/automount ${if cfg.debug then "-d" else ""} -f -t ${builtins.toString cfg.timeout} ${autoMaster} ${if cfg.debug then "-l7" else ""}"; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + }; }; }; |