#!/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