postgres/contrib/start-scripts/macos
Tom Lane ac3b962681 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
2017-11-17 12:46:52 -05:00
..
README Provide modern examples of how to auto-start Postgres on macOS. 2017-11-17 12:46:52 -05:00
org.postgresql.postgres.plist Provide modern examples of how to auto-start Postgres on macOS. 2017-11-17 12:46:52 -05:00
postgres-wrapper.sh Provide modern examples of how to auto-start Postgres on macOS. 2017-11-17 12:46:52 -05:00

README

To make macOS automatically launch your PostgreSQL server at system start,
do the following:

1. Edit the postgres-wrapper.sh script and adjust the file path
variables at its start to reflect where you have installed Postgres,
if that's not /usr/local/pgsql.

2. Copy the modified postgres-wrapper.sh script into some suitable
installation directory.  It can be, but doesn't have to be, where
you keep the Postgres executables themselves.

3. Edit the org.postgresql.postgres.plist file and adjust its path
for postgres-wrapper.sh to match what you did in step 2.  Also,
if you plan to run the Postgres server under some user name other
than "postgres", adjust the UserName parameter value for that.

4. Copy the modified org.postgresql.postgres.plist file into
/Library/LaunchDaemons/.  You must do this as root:
    sudo cp org.postgresql.postgres.plist /Library/LaunchDaemons
because the file will be ignored if it is not root-owned.

At this point a reboot should launch the server.  But if you want
to test it without rebooting, you can do
    sudo launchctl load /Library/LaunchDaemons/org.postgresql.postgres.plist