From 993ef8287eaf1fd74fb595446b07eacf455478a3 Mon Sep 17 00:00:00 2001 From: Jaka Hudoklin Date: Mon, 10 Mar 2014 11:06:48 +0100 Subject: nixos/couchdb: fix stopping of service, by making it non-forking, a few other improvments Conflicts: nixos/modules/services/databases/couchdb.nix --- nixos/modules/services/databases/couchdb.nix | 33 ++++++++-------------------- 1 file changed, 9 insertions(+), 24 deletions(-) (limited to 'nixos/modules/services/databases') diff --git a/nixos/modules/services/databases/couchdb.nix b/nixos/modules/services/databases/couchdb.nix index 01631e9879a2..b48d3a64767f 100644 --- a/nixos/modules/services/databases/couchdb.nix +++ b/nixos/modules/services/databases/couchdb.nix @@ -1,9 +1,7 @@ { config, pkgs, ... }: - -with pkgs.lib; + with pkgs.lib; let - cfg = config.services.couchdb; configFile = pkgs.writeText "couchdb.ini" '' @@ -19,10 +17,8 @@ let [log] file = ${cfg.logFile} ''; - configExtraFile = pkgs.writeText "couchdb-extra.ini" cfg.extraConfig; -in -{ +in { ###### interface @@ -64,14 +60,6 @@ in ''; }; - pidFile = mkOption { - type = types.path; - default = "/var/run/couchdb/couchdb.pid"; - description = '' - pid file. - ''; - }; - # couchdb options: http://docs.couchdb.org/en/latest/config/index.html databaseDir = mkOption { @@ -153,26 +141,23 @@ in preStart = '' - mkdir -p `dirname ${cfg.pidFile}`; mkdir -p `dirname ${cfg.uriFile}`; mkdir -p `dirname ${cfg.logFile}`; - touch ${cfg.logFile}; mkdir -p ${cfg.databaseDir}; mkdir -p ${cfg.viewIndexDir}; - chown ${cfg.user}:${cfg.group} `dirname ${cfg.pidFile}` - chown ${cfg.user}:${cfg.group} `dirname ${cfg.uriFile}` - chown ${cfg.user}:${cfg.group} ${cfg.logFile} - chown ${cfg.user}:${cfg.group} ${cfg.databaseDir} - chown ${cfg.user}:${cfg.group} ${cfg.viewIndexDir} + + if [ "$(id -u)" = 0 ]; then + chown ${cfg.user}:${cfg.group} `dirname ${cfg.uriFile}` + chown ${cfg.user}:${cfg.group} ${cfg.databaseDir} + chown ${cfg.user}:${cfg.group} ${cfg.viewIndexDir} + fi ''; serviceConfig = { PermissionsStartOnly = true; User = cfg.user; Group = cfg.group; - Type = "forking"; - ExecStart = "${cfg.package}/bin/couchdb -b -o /dev/null -e /dev/null -p ${cfg.pidFile} -a ${configFile} -a ${configExtraFile}"; - ExecStop = "${cfg.package}/bin/couchdb -d"; + ExecStart = "${cfg.package}/bin/couchdb -a ${configFile} -a ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig}"; }; }; -- cgit 1.4.1