diff options
author | Jörg Thalheim <Mic92@users.noreply.github.com> | 2018-01-04 18:39:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-04 18:39:48 +0100 |
commit | f29ecd56c1b67334fbf855217bcd74e911d2057e (patch) | |
tree | d6cf43a680b77dba32a6714434850d9eafddd35c /nixos/modules/services/databases | |
parent | 0f925943fdeafd7f6813488aac587e9c989e6e91 (diff) | |
parent | c9c8a2c5b3b72668656add5409853db8e15ea99d (diff) | |
download | nixlib-f29ecd56c1b67334fbf855217bcd74e911d2057e.tar nixlib-f29ecd56c1b67334fbf855217bcd74e911d2057e.tar.gz nixlib-f29ecd56c1b67334fbf855217bcd74e911d2057e.tar.bz2 nixlib-f29ecd56c1b67334fbf855217bcd74e911d2057e.tar.lz nixlib-f29ecd56c1b67334fbf855217bcd74e911d2057e.tar.xz nixlib-f29ecd56c1b67334fbf855217bcd74e911d2057e.tar.zst nixlib-f29ecd56c1b67334fbf855217bcd74e911d2057e.zip |
Merge pull request #33372 from Mic92/memcache
nixos/memcached: make unix sockets usuable
Diffstat (limited to 'nixos/modules/services/databases')
-rw-r--r-- | nixos/modules/services/databases/memcached.nix | 57 |
1 files changed, 31 insertions, 26 deletions
diff --git a/nixos/modules/services/databases/memcached.nix b/nixos/modules/services/databases/memcached.nix index c6875af506d3..46bc6fc5c132 100644 --- a/nixos/modules/services/databases/memcached.nix +++ b/nixos/modules/services/databases/memcached.nix @@ -40,11 +40,7 @@ in description = "The port to bind to"; }; - socket = mkOption { - default = ""; - description = "Unix socket path to listen on. Setting this will disable network support"; - example = "/var/run/memcached"; - }; + enableUnixSocket = mkEnableOption "unix socket at /run/memcached/memcached.sock"; maxMemory = mkOption { default = 64; @@ -68,31 +64,40 @@ in config = mkIf config.services.memcached.enable { - users.extraUsers.memcached = - { name = cfg.user; - uid = config.ids.uids.memcached; - description = "Memcached server user"; - }; + users.extraUsers = optional (cfg.user == "memcached") { + name = "memcached"; + description = "Memcached server user"; + }; environment.systemPackages = [ memcached ]; - systemd.services.memcached = - { description = "Memcached server"; - - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; - - serviceConfig = { - ExecStart = - let - networking = if cfg.socket != "" - then "-s ${cfg.socket}" - else "-l ${cfg.listen} -p ${toString cfg.port}"; - in "${memcached}/bin/memcached ${networking} -m ${toString cfg.maxMemory} -c ${toString cfg.maxConnections} ${concatStringsSep " " cfg.extraOptions}"; - - User = cfg.user; - }; + systemd.services.memcached = { + description = "Memcached server"; + + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + + serviceConfig = { + PermissionsStartOnly = true; + ExecStartPre = optionals cfg.enableUnixSocket [ + "${pkgs.coreutils}/bin/install -d -o ${cfg.user} /run/memcached/" + "${pkgs.coreutils}/bin/chown -R ${cfg.user} /run/memcached/" + ]; + ExecStart = + let + networking = if cfg.enableUnixSocket + then "-s /run/memcached/memcached.sock" + else "-l ${cfg.listen} -p ${toString cfg.port}"; + in "${memcached}/bin/memcached ${networking} -m ${toString cfg.maxMemory} -c ${toString cfg.maxConnections} ${concatStringsSep " " cfg.extraOptions}"; + + User = cfg.user; }; + }; }; + imports = [ + (mkRemovedOptionModule ["services" "memcached" "socket"] '' + This option was replaced by a fixed unix socket path at /run/memcached/memcached.sock enabled using services.memached.enableUnixSocket. + '') + ]; } |