58

I installed PostgreSQL using Homebrew on Lion. It starts okay but wouldn't shutdown. I tried:

$ #started with
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
$ #tried stoping with
$ pg_ctl -D /usr/local/var/postgres stop -m immediate
waiting for server to shut down................................... failed
pg_ctl: server does not shut down

I fixed this issue by deleting the Launch Agent:

launchctl unload -w ~/Library/LaunchAgents/org.postgresql.postgres.plist
rm ~/Library/LaunchAgents/org.postgresql.postgres.plist
the Tin Man
  • 158,662
  • 42
  • 215
  • 303
Greg
  • 4,509
  • 2
  • 29
  • 22
  • 7
    That is the correct fix. It worked for me on OS X Snow Leopard as well. You don't need to delete the plist though, you just have to do the unload. You can re-start it by issuing: `$ launchctl load -w ~/Library/LaunchAgents/org.postgresql.postgres.plist` – stantonk Dec 23 '11 at 06:37
  • @Greg: Please add your solution as an answer and accept it, so that this questions doesn't show up on the list of unanswered questions. – kgrittn Apr 30 '12 at 16:39
  • 1
    if installed with homebrew it may look something like this: `~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist` – random-forest-cat Nov 16 '13 at 18:56

4 Answers4

64
launchctl unload -w ~/Library/LaunchAgents/org.postgresql.postgres.plist
rm ~/Library/LaunchAgents/org.postgresql.postgres.plist
vyegorov
  • 21,787
  • 7
  • 59
  • 73
Greg
  • 4,509
  • 2
  • 29
  • 22
12

Shutting down PostgreSQL Server with -m immediate is a dangerous way to do it, because “Immediate” mode will abort all server processes without a clean shutdown.

This will lead to a recovery run on restart. Try to shutdown PostgreSQL with parameter -m fast instead. "Fast” mode does not wait for clients to disconnect and will terminate an online backup in progress. All active transactions are rolled back and clients are forcibly disconnected

pg_ctl stop -D /usr/local/var/postgres -m fast 

For more information about pg_ctl please visit http://www.postgresql.org/docs/9.0/static/app-pg-ctl.html

the Tin Man
  • 158,662
  • 42
  • 215
  • 303
francs
  • 8,511
  • 7
  • 39
  • 43
  • The problem was about clean shutdown but rather about the server shutting down. Any way, its fixed and I've updated the solution in the question. – Greg Aug 05 '11 at 06:43
2

This works for me

 pg_ctl -D /Library/PostgreSQL/9.2/data/ start
 pg_ctl -D /Library/PostgreSQL/9.2/data/ stop

Source https://sites.google.com/site/amaosblog/database/postgresql/how-to-start-stop-postgresql-9-2-on-mac-os-x-10-8-x

1

If you used Homebrew to install postgresql, then as Shevauns comment on Greg's answer indicates, the correct procedure is

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Obromios
  • 15,408
  • 15
  • 72
  • 127