【发布时间】:2022-08-17 01:06:23
【问题描述】:
我想在一个 nix 文件中定义/管理一个配置文件,并让它在 nix 商店中结束,我该怎么做?
目前,我正在通过将文件放在~/example/config.json 之类的路径中手动管理这个(在 nix 商店之外),并使用如下:
systemd.services = {
example = {
description = \"abcxyz\";
serviceConfig = {
WorkingDirectory = \"%h/example/\";
Type = \"simple\";
ExecStart = \"${example-pkg}/bin/app -c config.json\";
Restart = \"always\";
RestartSec = 60;
};
wantedBy = [ \"default.target\" ];
};
例如,Nixos 定义了一个 postgresql 服务,该服务的配置文件位于 /nix/store/pcp1r7f8mylwvri381an01r64knj1wwb-postgresql.conf/postgresql.conf - 我如何在上面自己的服务中复制此功能?
configFile = pkgs.writeTextDir \"postgresql.conf\" (concatStringsSep \"\\n\" (mapAttrsToList (n: v: \"${n} = ${toStr v}\") cfg.settings));
我不清楚configFile 是什么?它会是postgresql.conf 文件的路径吗?
无论哪种方式pkgs.writeTextDir \"config.ini\" 似乎都创建了一个目录,我应该改用pkgs.writeText 吗?