Merge pull request #285866 from 999eagle/feat/pgbouncer-systemd
This commit is contained in:
commit
30f71249a8
3 changed files with 13 additions and 14 deletions
|
@ -179,6 +179,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||
`wants`), because the dependency that `multi-user.target` has on
|
||||
`network-online.target` is planned for removal.
|
||||
|
||||
- `services.pgbouncer` now has systemd support enabled and will log to journald. The default setting for `services.pgbouncer.logFile` is now `null` to disable logging to a separate log file.
|
||||
|
||||
- `services.archisteamfarm` no longer uses the abbreviation `asf` for its state directory (`/var/lib/asf`), user and group (both `asf`). Instead the long name `archisteamfarm` is used.
|
||||
Configurations with `system.stateVersion` 23.11 or earlier, default to the old stateDirectory until the 24.11 release and must either set the option explicitly or move the data to the new directory.
|
||||
|
||||
|
|
|
@ -66,9 +66,6 @@ let
|
|||
${optionalString (cfg.adminUsers != null) "admin_users = ${cfg.adminUsers}"}
|
||||
${optionalString (cfg.statsUsers != null) "stats_users = ${cfg.statsUsers}"}
|
||||
|
||||
# linux
|
||||
pidfile = /run/pgbouncer/pgbouncer.pid
|
||||
|
||||
# extra
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
|
@ -96,10 +93,9 @@ in {
|
|||
|
||||
logFile = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = "pgbouncer.log";
|
||||
default = null;
|
||||
description = lib.mdDoc ''
|
||||
Specifies the log file.
|
||||
Either this or syslog has to be specified.
|
||||
Specifies a log file in addition to journald.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -601,22 +597,21 @@ in {
|
|||
|
||||
systemd.services.pgbouncer = {
|
||||
description = "PgBouncer - PostgreSQL connection pooler";
|
||||
wants = [ "postgresql.service" ];
|
||||
after = [ "postgresql.service" ];
|
||||
wants = [ "network-online.target" ] ++ lib.optional config.services.postgresql.enable "postgresql.service";
|
||||
after = [ "network-online.target" ] ++ lib.optional config.services.postgresql.enable "postgresql.service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "forking";
|
||||
Type = "notify";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStart = "${pkgs.pgbouncer}/bin/pgbouncer -d ${confFile}";
|
||||
ExecStart = "${lib.getExe pkgs.pgbouncer} ${confFile}";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -SIGHUP $MAINPID";
|
||||
RuntimeDirectory = "pgbouncer";
|
||||
PIDFile = "/run/pgbouncer/pgbouncer.pid";
|
||||
LimitNOFILE = cfg.openFilesLimit;
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = optional cfg.openFirewall cfg.port;
|
||||
networking.firewall.allowedTCPPorts = optional cfg.openFirewall cfg.listenPort;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchurl, openssl, libevent, c-ares, pkg-config, nixosTests }:
|
||||
{ lib, stdenv, fetchurl, openssl, libevent, c-ares, pkg-config, systemd, nixosTests }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pgbouncer";
|
||||
|
@ -10,8 +10,10 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libevent openssl c-ares ];
|
||||
buildInputs = [ libevent openssl c-ares ]
|
||||
++ lib.optional stdenv.isLinux systemd;
|
||||
enableParallelBuilding = true;
|
||||
configureFlags = lib.optional stdenv.isLinux "--with-systemd";
|
||||
|
||||
passthru.tests = {
|
||||
pgbouncer = nixosTests.pgbouncer;
|
||||
|
|
Loading…
Reference in a new issue