diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 12:08:38 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 12:08:38 +0000 |
commit | d351686a4df1b61f40ada69e53c9522259ad6700 (patch) | |
tree | 0322b0d8e7e63c926188aa7b037070f3560ad8dd /systemd/postgresql-generator | |
parent | Initial commit. (diff) | |
download | postgresql-common-upstream.tar.xz postgresql-common-upstream.zip |
Adding upstream version 225+deb11u1.upstream/225+deb11u1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'systemd/postgresql-generator')
-rwxr-xr-x | systemd/postgresql-generator | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/systemd/postgresql-generator b/systemd/postgresql-generator new file mode 100755 index 0000000..12e8102 --- /dev/null +++ b/systemd/postgresql-generator @@ -0,0 +1,38 @@ +#!/bin/sh + +# This systemd generator creates dependency symlinks that make all PostgreSQL +# clusters with "auto" in their start.conf file be started/stopped/reloaded +# when postgresql.service is started/stopped/reloaded. + +set -eu + +gendir="$1" +wantdir="$1/postgresql.service.wants" +bindir="/usr/lib/postgresql/" +#redhat# bindir="/usr/pgsql-" +pgservice="/lib/systemd/system/postgresql@.service" + +mkdir -p "$wantdir" + +for conf in /etc/postgresql/*/*/postgresql.conf; do + # abort loop if glob was not expanded (but accept dead symlinks) + if ! test -e "$conf" && ! test -L "$conf"; then continue; fi + + dir="${conf%/*}" + + # evaluate start.conf + if [ -e "$dir/start.conf" ]; then + start=$(sed 's/#.*$//; /^[[:space:]]*$/d; s/^\s*//; s/\s*$//' "$dir/start.conf") + else + start=auto + fi + [ "$start" = "auto" ] || continue + + verdir="${dir%/*}" + version="${verdir##*/}" + test -x "$bindir$version/bin/postgres" || continue # package got removed + cluster="${dir##*/}" + ln -s "$pgservice" "$wantdir/postgresql@$version-$cluster.service" +done + +exit 0 |