Updated macOS start scripts - Mailing list pgsql-hackers
From | Tom Lane |
---|---|
Subject | Updated macOS start scripts |
Date | |
Msg-id | 31338.1510763554@sss.pgh.pa.us Whole thread Raw |
Responses |
Re: Updated macOS start scripts
Re: Updated macOS start scripts |
List | pgsql-hackers |
The stuff in contrib/start-scripts/osx/ does not, as far as I know, work at all on any recent release of macOS, because SystemStarter is long gone. I propose replacing it with the attached, which I've tested on current-vintage Macs. If anyone's interested in reviewing this, I'll stick it into the next commitfest. regards, tom lane diff --git a/contrib/start-scripts/macos/README b/contrib/start-scripts/macos/README index ...c4f2d9a . *** a/contrib/start-scripts/macos/README --- b/contrib/start-scripts/macos/README *************** *** 0 **** --- 1,24 ---- + 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 diff --git a/contrib/start-scripts/macos/org.postgresql.postgres.plist b/contrib/start-scripts/macos/org.postgresql.postgres.plist index ...fdbd74f . *** a/contrib/start-scripts/macos/org.postgresql.postgres.plist --- b/contrib/start-scripts/macos/org.postgresql.postgres.plist *************** *** 0 **** --- 1,17 ---- + <?xml version="1.0" encoding="UTF-8"?> + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> + <plist version="1.0"> + <dict> + <key>Label</key> + <string>org.postgresql.postgres</string> + <key>ProgramArguments</key> + <array> + <string>/bin/sh</string> + <string>/usr/local/pgsql/bin/postgres-wrapper.sh</string> + </array> + <key>UserName</key> + <string>postgres</string> + <key>KeepAlive</key> + <true/> + </dict> + </plist> diff --git a/contrib/start-scripts/macos/postgres-wrapper.sh b/contrib/start-scripts/macos/postgres-wrapper.sh index ...3a4ebda . *** a/contrib/start-scripts/macos/postgres-wrapper.sh --- b/contrib/start-scripts/macos/postgres-wrapper.sh *************** *** 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
pgsql-hackers by date: