aboutsummaryrefslogtreecommitdiff
path: root/contrib/start-scripts/macos/postgres-wrapper.sh
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-11-17 12:46:52 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2017-11-17 12:46:52 -0500
commitac3b9626812b1dd1482ec201711f26af733800f9 (patch)
tree72073a23800bb13c737493ec80a028bcc0ba58d5 /contrib/start-scripts/macos/postgres-wrapper.sh
parente87d4965bd39e4d0d56346c1bbe9361d3eb9ff0a (diff)
downloadpostgresql-ac3b9626812b1dd1482ec201711f26af733800f9.tar.gz
postgresql-ac3b9626812b1dd1482ec201711f26af733800f9.zip
Provide modern examples of how to auto-start Postgres on macOS.
The scripts in contrib/start-scripts/osx don't work at all on macOS 10.10 (Yosemite) or later, because they depend on SystemStarter which Apple deprecated long ago and removed in 10.10. Add a new subdirectory contrib/start-scripts/macos with scripts that use the newer launchd infrastructure. Since this problem is independent of which Postgres version you're using, back-patch to all supported branches. Discussion: https://postgr.es/m/31338.1510763554@sss.pgh.pa.us
Diffstat (limited to 'contrib/start-scripts/macos/postgres-wrapper.sh')
-rw-r--r--contrib/start-scripts/macos/postgres-wrapper.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/contrib/start-scripts/macos/postgres-wrapper.sh b/contrib/start-scripts/macos/postgres-wrapper.sh
new file mode 100644
index 00000000000..3a4ebdaf0fb
--- /dev/null
+++ b/contrib/start-scripts/macos/postgres-wrapper.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# PostgreSQL server start script (launched by org.postgresql.postgres.plist)
+
+# edit these as needed:
+
+# directory containing postgres executable:
+PGBINDIR="/usr/local/pgsql/bin"
+# data directory:
+PGDATA="/usr/local/pgsql/data"
+# file to receive postmaster's initial log messages:
+PGLOGFILE="${PGDATA}/pgstart.log"
+
+# (it's recommendable to enable the Postgres logging_collector feature
+# so that PGLOGFILE doesn't grow without bound)
+
+
+# set umask to ensure PGLOGFILE is not created world-readable
+umask 077
+
+# wait for networking to be up (else server may not bind to desired ports)
+/usr/sbin/ipconfig waitall
+
+# and launch the server
+exec "$PGBINDIR"/postgres -D "$PGDATA" >>"$PGLOGFILE" 2>&1