diff options
Diffstat (limited to 'dev-db/postgresql/files')
-rw-r--r-- | dev-db/postgresql/files/pg_ctl-exit-status.patch | 12 | ||||
-rw-r--r-- | dev-db/postgresql/files/postgresql-9.4-no-server.patch | 151 | ||||
-rw-r--r-- | dev-db/postgresql/files/postgresql-9.4.10-no-server.patch | 151 | ||||
-rw-r--r-- | dev-db/postgresql/files/postgresql-check-db-dir | 35 | ||||
-rw-r--r-- | dev-db/postgresql/files/postgresql.confd | 58 | ||||
-rw-r--r-- | dev-db/postgresql/files/postgresql.init | 137 | ||||
-rw-r--r-- | dev-db/postgresql/files/postgresql.service | 55 |
7 files changed, 599 insertions, 0 deletions
diff --git a/dev-db/postgresql/files/pg_ctl-exit-status.patch b/dev-db/postgresql/files/pg_ctl-exit-status.patch new file mode 100644 index 0000000..bbbd449 --- /dev/null +++ b/dev-db/postgresql/files/pg_ctl-exit-status.patch @@ -0,0 +1,12 @@ +diff -Naur a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c +--- a/src/bin/pg_ctl/pg_ctl.c 2011-04-14 23:18:15 -0400 ++++ b/src/bin/pg_ctl/pg_ctl.c 2011-08-01 19:44:54 -0400 +@@ -975,7 +975,7 @@ + } + } + printf(_("%s: no server running\n"), progname); +- exit(1); ++ exit(3); + } + + diff --git a/dev-db/postgresql/files/postgresql-9.4-no-server.patch b/dev-db/postgresql/files/postgresql-9.4-no-server.patch new file mode 100644 index 0000000..c46146e --- /dev/null +++ b/dev-db/postgresql/files/postgresql-9.4-no-server.patch @@ -0,0 +1,151 @@ +diff -Naur a/contrib/Makefile b/contrib/Makefile +--- a/contrib/Makefile 2013-05-06 20:57:06.000000000 +0000 ++++ b/contrib/Makefile 2013-06-09 01:48:22.351874929 +0000 +@@ -5,64 +5,10 @@ + include $(top_builddir)/src/Makefile.global + + SUBDIRS = \ +- adminpack \ +- auth_delay \ +- auto_explain \ +- btree_gin \ +- btree_gist \ +- chkpass \ +- citext \ +- cube \ +- dblink \ +- dict_int \ +- dict_xsyn \ +- dummy_seclabel \ +- earthdistance \ +- file_fdw \ +- fuzzystrmatch \ +- hstore \ +- intagg \ +- intarray \ +- isn \ +- lo \ +- ltree \ + oid2name \ +- pageinspect \ +- passwordcheck \ +- pg_archivecleanup \ +- pg_buffercache \ +- pg_freespacemap \ +- pg_prewarm \ +- pg_standby \ +- pg_stat_statements \ +- pg_test_fsync \ +- pg_test_timing \ +- pg_trgm \ +- pg_upgrade \ +- pg_upgrade_support \ + pgbench \ +- pgcrypto \ +- pgrowlocks \ +- pgstattuple \ +- pg_xlogdump \ +- postgres_fdw \ +- seg \ +- spi \ +- tablefunc \ +- tcn \ +- test_decoding \ +- test_parser \ +- test_shm_mq \ +- tsearch2 \ +- unaccent \ +- vacuumlo \ +- worker_spi ++ vacuumlo + +-ifeq ($(with_openssl),yes) +-SUBDIRS += sslinfo +-else +-ALWAYS_SUBDIRS += sslinfo +-endif + + ifeq ($(with_ossp_uuid),yes) + SUBDIRS += uuid-ossp +diff -Naur a/src/backend/Makefile b/src/backend/Makefile +--- a/src/backend/Makefile 2013-05-06 20:57:06.000000000 +0000 ++++ b/src/backend/Makefile 2013-06-09 01:50:19.655864258 +0000 +@@ -47,7 +47,7 @@ + + ########################################################################## + +-all: submake-libpgport submake-schemapg postgres $(POSTGRES_IMP) ++all: someheaders + + ifneq ($(PORTNAME), cygwin) + ifneq ($(PORTNAME), win32) +@@ -116,7 +116,7 @@ + endif # aix + + # Update the commonly used headers before building the subdirectories +-$(SUBDIRS:%=%-recursive): $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/catalog/schemapg.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/errcodes.h $(top_builddir)/src/include/utils/probes.h ++someheaders $(SUBDIRS:%=%-recursive): $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/catalog/schemapg.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/errcodes.h $(top_builddir)/src/include/utils/probes.h + + # run this unconditionally to avoid needing to know its dependencies here: + submake-schemapg: +@@ -209,23 +209,8 @@ + + ########################################################################## + +-install: all installdirs install-bin +-ifeq ($(PORTNAME), cygwin) +-ifeq ($(MAKE_DLL), true) +- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a' +-endif +-endif +-ifeq ($(PORTNAME), win32) +-ifeq ($(MAKE_DLL), true) +- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a' +-endif +-endif +- $(MAKE) -C catalog install-data +- $(MAKE) -C tsearch install-data +- $(INSTALL_DATA) $(srcdir)/libpq/pg_hba.conf.sample '$(DESTDIR)$(datadir)/pg_hba.conf.sample' +- $(INSTALL_DATA) $(srcdir)/libpq/pg_ident.conf.sample '$(DESTDIR)$(datadir)/pg_ident.conf.sample' +- $(INSTALL_DATA) $(srcdir)/utils/misc/postgresql.conf.sample '$(DESTDIR)$(datadir)/postgresql.conf.sample' +- $(INSTALL_DATA) $(srcdir)/access/transam/recovery.conf.sample '$(DESTDIR)$(datadir)/recovery.conf.sample' ++install: ++ + + install-bin: postgres $(POSTGRES_IMP) installdirs + $(INSTALL_PROGRAM) postgres$(X) '$(DESTDIR)$(bindir)/postgres$(X)' +diff -Naur a/src/bin/Makefile b/src/bin/Makefile +--- a/src/bin/Makefile 2013-05-06 20:57:06.000000000 +0000 ++++ b/src/bin/Makefile 2013-06-09 01:51:56.143824442 +0000 +@@ -13,8 +13,7 @@ + top_builddir = ../.. + include $(top_builddir)/src/Makefile.global + +-SUBDIRS = initdb pg_ctl pg_dump \ +- psql scripts pg_config pg_controldata pg_resetxlog pg_basebackup ++SUBDIRS = pg_dump psql scripts pg_config + + ifeq ($(PORTNAME), win32) + SUBDIRS += pgevent +diff -Naur a/src/Makefile b/src/Makefile +--- a/src/Makefile 2013-05-06 20:57:06.000000000 +0000 ++++ b/src/Makefile 2013-06-09 01:54:30.479704228 +0000 +@@ -15,17 +15,11 @@ + SUBDIRS = \ + common \ + port \ +- timezone \ + backend \ +- backend/utils/mb/conversion_procs \ +- backend/snowball \ + include \ + interfaces \ +- backend/replication/libpqwalreceiver \ + bin \ +- pl \ +- makefiles \ +- test/regress ++ makefiles + + # There are too many interdependencies between the subdirectories, so + # don't attempt parallel make here. diff --git a/dev-db/postgresql/files/postgresql-9.4.10-no-server.patch b/dev-db/postgresql/files/postgresql-9.4.10-no-server.patch new file mode 100644 index 0000000..81fc383 --- /dev/null +++ b/dev-db/postgresql/files/postgresql-9.4.10-no-server.patch @@ -0,0 +1,151 @@ +diff -Naruw a/contrib/Makefile b/contrib/Makefile +--- a/contrib/Makefile 2016-10-24 16:12:53.000000000 -0400 ++++ b/contrib/Makefile 2016-10-27 13:38:23.361545396 -0400 +@@ -5,64 +5,10 @@ + include $(top_builddir)/src/Makefile.global + + SUBDIRS = \ +- adminpack \ +- auth_delay \ +- auto_explain \ +- btree_gin \ +- btree_gist \ +- chkpass \ +- citext \ +- cube \ +- dblink \ +- dict_int \ +- dict_xsyn \ +- dummy_seclabel \ +- earthdistance \ +- file_fdw \ +- fuzzystrmatch \ +- hstore \ +- intagg \ +- intarray \ +- isn \ +- lo \ +- ltree \ + oid2name \ +- pageinspect \ +- passwordcheck \ +- pg_archivecleanup \ +- pg_buffercache \ +- pg_freespacemap \ +- pg_prewarm \ +- pg_standby \ +- pg_stat_statements \ +- pg_test_fsync \ +- pg_test_timing \ +- pg_trgm \ +- pg_upgrade \ +- pg_upgrade_support \ + pgbench \ +- pgcrypto \ +- pgrowlocks \ +- pgstattuple \ +- pg_xlogdump \ +- postgres_fdw \ +- seg \ +- spi \ +- tablefunc \ +- tcn \ +- test_decoding \ +- test_parser \ +- test_shm_mq \ +- tsearch2 \ +- unaccent \ +- vacuumlo \ +- worker_spi ++ vacuumlo + +-ifeq ($(with_openssl),yes) +-SUBDIRS += sslinfo +-else +-ALWAYS_SUBDIRS += sslinfo +-endif + + ifneq ($(with_uuid),no) + SUBDIRS += uuid-ossp +diff -Naruw a/src/backend/Makefile b/src/backend/Makefile +--- a/src/backend/Makefile 2016-10-24 16:12:53.000000000 -0400 ++++ b/src/backend/Makefile 2016-10-27 14:04:47.617000374 -0400 +@@ -47,7 +47,7 @@ + + ########################################################################## + +-all: submake-libpgport submake-schemapg postgres $(POSTGRES_IMP) ++all: someheaders + + ifneq ($(PORTNAME), cygwin) + ifneq ($(PORTNAME), win32) +@@ -106,7 +106,7 @@ + endif # aix + + # Update the commonly used headers before building the subdirectories +-$(SUBDIRS:%=%-recursive): $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/catalog/schemapg.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/errcodes.h $(top_builddir)/src/include/utils/probes.h ++someheaders $(SUBDIRS:%=%-recursive): $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/catalog/schemapg.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/errcodes.h $(top_builddir)/src/include/utils/probes.h + + # run this unconditionally to avoid needing to know its dependencies here: + submake-schemapg: +@@ -199,23 +199,7 @@ + + ########################################################################## + +-install: all installdirs install-bin +-ifeq ($(PORTNAME), cygwin) +-ifeq ($(MAKE_DLL), true) +- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a' +-endif +-endif +-ifeq ($(PORTNAME), win32) +-ifeq ($(MAKE_DLL), true) +- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a' +-endif +-endif +- $(MAKE) -C catalog install-data +- $(MAKE) -C tsearch install-data +- $(INSTALL_DATA) $(srcdir)/libpq/pg_hba.conf.sample '$(DESTDIR)$(datadir)/pg_hba.conf.sample' +- $(INSTALL_DATA) $(srcdir)/libpq/pg_ident.conf.sample '$(DESTDIR)$(datadir)/pg_ident.conf.sample' +- $(INSTALL_DATA) $(srcdir)/utils/misc/postgresql.conf.sample '$(DESTDIR)$(datadir)/postgresql.conf.sample' +- $(INSTALL_DATA) $(srcdir)/access/transam/recovery.conf.sample '$(DESTDIR)$(datadir)/recovery.conf.sample' ++install: + + install-bin: postgres $(POSTGRES_IMP) installdirs + $(INSTALL_PROGRAM) postgres$(X) '$(DESTDIR)$(bindir)/postgres$(X)' +diff -Naruw a/src/bin/Makefile b/src/bin/Makefile +--- a/src/bin/Makefile 2016-10-24 16:12:53.000000000 -0400 ++++ b/src/bin/Makefile 2016-10-27 13:41:34.443930143 -0400 +@@ -13,8 +13,7 @@ + top_builddir = ../.. + include $(top_builddir)/src/Makefile.global + +-SUBDIRS = initdb pg_ctl pg_dump \ +- psql scripts pg_config pg_controldata pg_resetxlog pg_basebackup ++SUBDIRS = pg_dump psql scripts pg_config + + ifeq ($(PORTNAME), win32) + SUBDIRS += pgevent +diff -Naruw a/src/Makefile b/src/Makefile +--- a/src/Makefile 2016-10-24 16:12:53.000000000 -0400 ++++ b/src/Makefile 2016-10-27 13:43:09.296792018 -0400 +@@ -15,18 +15,11 @@ + SUBDIRS = \ + common \ + port \ +- timezone \ + backend \ +- backend/utils/mb/conversion_procs \ +- backend/snowball \ + include \ + interfaces \ +- backend/replication/libpqwalreceiver \ + bin \ +- pl \ +- makefiles \ +- test/regress \ +- test/perl ++ makefiles + + # There are too many interdependencies between the subdirectories, so + # don't attempt parallel make here. diff --git a/dev-db/postgresql/files/postgresql-check-db-dir b/dev-db/postgresql/files/postgresql-check-db-dir new file mode 100644 index 0000000..7f89919 --- /dev/null +++ b/dev-db/postgresql/files/postgresql-check-db-dir @@ -0,0 +1,35 @@ +#!/bin/sh +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +eerror() { + echo "$@" >&2 +} + +# Check that DATA_DIR has been set +if [ -z ${DATA_DIR} ] ; then + eerror "DATA_DIR not set" + exit 1 +fi + +# Check that DATA_DIR exists +if [ ! -d ${DATA_DIR} ] ; then + eerror "Directory not found: ${DATA_DIR}" + eerror "HINT: Ensure that DATA_DIR points to the right path." + eerror "HINT: Or perhaps you need to create the database cluster:" + eerror " emerge --config dev-db/postgresql:@SLOT@" + exit 1 +fi + +# Check for the existence of PostgreSQL's config files, and set the +# proper mode and ownership. +# Only three files should be checked as potentially other files +# may be in PGDATA that should not be touched. +for file in postgresql pg_hba pg_ident ; do + file="${PGDATA%/}/${file}.conf" + if [ ! -f ${file} ] ; then + eerror "${file} not found" + eerror "HINT: mv ${DATA_DIR%/}/*.conf ${PGDATA}" + exit 1 + fi +done diff --git a/dev-db/postgresql/files/postgresql.confd b/dev-db/postgresql/files/postgresql.confd new file mode 100644 index 0000000..07b465d --- /dev/null +++ b/dev-db/postgresql/files/postgresql.confd @@ -0,0 +1,58 @@ +# Which port and socket to bind PostgreSQL +PGPORT="5432" + +# How long to wait for server to start in seconds +START_TIMEOUT=10 + +# NICE_QUIT ignores new connections and wait for clients to disconnect from +# server before shutting down. NICE_TIMEOUT in seconds determines how long to +# wait for this to succeed. +NICE_TIMEOUT=60 + +# Forecfully disconnect clients from server and shut down. This is performed +# after NICE_QUIT. Terminated client connections have their open transactions +# rolled back. +# Set RUDE_QUIT to "NO" to disable. RUDE_TIMEOUT in seconds. +RUDE_QUIT="YES" +RUDE_TIMEOUT=30 + +# If the server still fails to shutdown, you can force it to quit by setting +# this to YES and a recover-run will execute on the next startup. +# Set FORCE_QUIT to "YES" to enable. FORCE_TIMEOUT in seconds. +FORCE_QUIT="NO" +FORCE_TIMEOUT=2 + +# Extra options to run postmaster with, e.g.: +# -N is the maximal number of client connections +# -B is the number of shared buffers and has to be at least 2x the value for -N +# Please read the man-page to postmaster for more options. Many of these +# options can be set directly in the configuration file. +#PGOPTS="-N 512 -B 1024" + +# Pass extra environment variables. If you have to export environment variables +# for the database process, this can be done here. +# Don't forget to escape quotes. +#PG_EXTRA_ENV="PGPASSFILE=\"/path/to/.pgpass\"" + +############################################################################## +# +# The following values should not be arbitrarily changed. +# +# `emerge --config dev-db/postgresql:@SLOT@' uses these values to +# determine where to create the data directory, where to place the +# configuration files, and any additional options to pass to initdb. +# +# The initscript also uses these variables to inform PostgreSQL where to find +# its data directory and configuration files. +# +############################################################################## + +# Location of configuration files +PGDATA="/etc/postgresql-@SLOT@/" + +# Where the data directory is located/to be created +DATA_DIR="/var/lib/postgresql/@SLOT@/data" + +# Additional options to pass to initdb. +# See `man initdb' for available options. +PG_INITDB_OPTS="--encoding=UTF8" diff --git a/dev-db/postgresql/files/postgresql.init b/dev-db/postgresql/files/postgresql.init new file mode 100644 index 0000000..35dd316 --- /dev/null +++ b/dev-db/postgresql/files/postgresql.init @@ -0,0 +1,137 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_started_commands="reload" + +get_config() { + [ -f ${PGDATA%/}/postgresql.conf ] || return 1 + + eval echo $(sed -e 's:#.*::' ${PGDATA%/}/postgresql.conf \ + | awk '$1 == "'$1'" { print ($2 == "=" ? $3 : $2) }') +} + +depend() { + use net + provide postgresql + + if [ "$(get_config log_destination)" = "syslog" ]; then + use logger + fi +} + +configured_port=$(get_config port) +: ${configured_port:=${PGPORT}} +socket_path=$(get_config unix_socket_directory) +: ${socket_path:=/run/postgresql} + +checkconfig() { + # Check that DATA_DIR has been set + if [ -z ${DATA_DIR} ] ; then + eerror "DATA_DIR not set" + eerror "HINT: Perhaps you need to update /etc/conf.d/postgresql-@SLOT@" + return 1 + fi + + # Check that DATA_DIR exists + if [ ! -d ${DATA_DIR} ] ; then + eerror "Directory not found: ${DATA_DIR}" + eerror "HINT: Ensure that DATA_DIR points to the right path." + eerror "HINT: Or perhaps you need to create the database cluster:" + eerror " emerge --config dev-db/postgresql:@SLOT@" + return 1 + fi + + # Check for the existence of PostgreSQL's config files, and set the + # proper mode and ownership. + # Only three files should be checked as potentially other files + # may be in PGDATA that should not be touched. + local file + for file in postgresql pg_hba pg_ident ; do + file="${PGDATA%/}/${file}.conf" + if [ -f ${file} ] ; then + checkpath -f -m 0600 -o postgres:postgres ${file} + else + eerror "${file} not found" + eerror "HINT: mv ${DATA_DIR%/}/*.conf ${PGDATA}" + return 1 + fi + done + + # Set the proper permission for the socket path and create it if + # it doesn't exist. + checkpath -d -m 1775 -o postgres:postgres ${socket_path} + if [ -e ${socket_path%/}/.s.PGSQL.${configured_port} ] ; then + eerror "Socket conflict." + eerror "A server is already listening on:" + eerror " ${socket_path%/}/.s.PGSQL.${configured_port}" + eerror "HINT: Change PGPORT to listen on a different socket." + return 1 + fi +} + +start() { + checkconfig || return 1 + + ebegin "Starting PostgreSQL" + + rm -f ${DATA_DIR%/}/postmaster.pid + + local extraenv + local x + for x in ${PG_EXTRA_ENV} ; do + extraenv="${extraenv} --env ${x}" + done + + start-stop-daemon --start \ + --user postgres \ + --env "PGPORT=${configured_port}" \ + ${extraenv} \ + --pidfile ${DATA_DIR%/}/postmaster.pid \ + --exec /usr/@LIBDIR@/postgresql-@SLOT@/bin/pg_ctl \ + -- start -s -w -t ${START_TIMEOUT} -l ${DATA_DIR%/}/postmaster.log \ + -D ${PGDATA} -o "--data-directory=${DATA_DIR} ${PGOPTS}" + local retval=$? + + if [ $retval -ne 0 ] ; then + eerror "Check the log for a possible explanation of the above error. The log may be" + eerror " ${DATA_DIR%/}/postmaster.log" + eerror "Or wherever you configured PostgreSQL @SLOT@ log messages to be sent." + eend $retval + return $retval + fi + + eend $retval +} + +stop() { + local seconds=$(( ${NICE_TIMEOUT} + ${RUDE_TIMEOUT} + ${FORCE_TIMEOUT} )) + ebegin "Stopping PostgreSQL (this can take up to ${seconds} seconds)" + + local retval + local retries=SIGTERM/${NICE_TIMEOUT} + + if [ "${RUDE_QUIT}" != "NO" ] ; then + einfo "RUDE_QUIT enabled." + retries="${retries}/SIGINT/${RUDE_TIMEOUT}" + fi + if [ "${FORCE_QUIT}" = "YES" ] ; then + einfo "FORCE_QUIT enabled." + ewarn "A recover-run might be executed on next startup." + retries="${retries}/SIGQUIT/${FORCE_TIMEOUT}" + fi + + # Loops through nice, rude, and force quit in one go. + start-stop-daemon --stop \ + --exec /usr/@LIBDIR@/postgresql-@SLOT@/bin/postgres \ + --retry ${retries} \ + --pidfile ${DATA_DIR%/}/postmaster.pid + + eend +} + +reload() { + ebegin "Reloading PostgreSQL configuration" + kill -HUP $(head -n1 ${DATA_DIR%/}/postmaster.pid) + eend $? +} diff --git a/dev-db/postgresql/files/postgresql.service b/dev-db/postgresql/files/postgresql.service new file mode 100644 index 0000000..a607169 --- /dev/null +++ b/dev-db/postgresql/files/postgresql.service @@ -0,0 +1,55 @@ +# It's not recommended to modify this file in-place, because it will be +# overwritten during package upgrades. If you want to customize, the +# best way is to create file +# "/etc/systemd/system/postgresql-@SLOT@.service.d/*.conf" +# containing your changes + +# For example, if you want to change the server's port number to 5433, +# create a file named +# "/etc/systemd/system/postgresql-@SLOT@.service.d/port.conf" +# containing: +# [Service] +# Environment=PGPORT=5433 +# This will override the setting appearing below. + +[Unit] +Description=PostgreSQL database server +After=network.target + +[Service] +Type=forking + +User=postgres +Group=postgres + +# Port number for server to listen on +Environment=PGPORT=5432 + +# Location of configuration files +Environment=PGDATA=/etc/postgresql-@SLOT@ + +# Where the data directory is located +Environment=DATA_DIR=/var/lib/postgresql/@SLOT@/data + +# Where to send early-startup messages from the server (before the logging +# options of postgresql.conf take effect) +# This is normally controlled by the global default set by systemd +# StandardOutput=syslog + +ExecStartPre=/usr/bin/postgresql-@SLOT@-check-db-dir +ExecStart=/usr/@LIBDIR@/postgresql-@SLOT@/bin/pg_ctl start -D ${DATA_DIR} -s -l ${DATA_DIR}/postmaster.log -o "-p ${PGPORT} -D ${PGDATA} --data-directory=${DATA_DIR}" -w -t 300 +ExecStop=/usr/@LIBDIR@/postgresql-@SLOT@/bin/pg_ctl stop -D ${DATA_DIR} -s -m fast +ExecReload=/usr/@LIBDIR@/postgresql-@SLOT@/bin/pg_ctl reload -D ${DATA_DIR} -s + +# Give a reasonable amount of time for the server to start up/shut down +TimeoutSec=300 + +# Disable OOM kill on the postmaster +OOMScoreAdjust=-1000 + +# Make sure the required runtimedir is present +RuntimeDirectory=postgresql +RuntimeDirectoryMode=1775 + +[Install] +WantedBy=multi-user.target |