2011-08-05 3 views
59

J'ai installé PostgreSQL en utilisant Homebrew sur Lion. Ça commence bien, mais je ne ferais pas d'arrêt. J'ai essayé:Le serveur PostgreSQL ne s'est pas arrêté sur Lion (Mac OS 10.7)

$ #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 

Je résolu ce problème en supprimant l'agent de lancement:

launchctl unload -w ~/Library/LaunchAgents/org.postgresql.postgres.plist 
rm ~/Library/LaunchAgents/org.postgresql.postgres.plist 
+7

C'est le correctif correct. Cela a aussi fonctionné pour OS X Snow Leopard. Vous n'avez pas besoin de supprimer le plist, vous devez simplement le décharger. Vous pouvez le redémarrer en émettant: '$ launchctl charger -w ~/Bibliothèque/LaunchAgents/org.postgresql.postgres.plist' – stantonk

+0

@Greg: S'il vous plaît ajouter votre solution comme une réponse et l'accepter, de sorte que cette questions n'apparaît pas sur la liste des questions sans réponse. – kgrittn

+1

s'il est installé avec homebrew, il peut ressembler à ceci: '~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist' – lfender6445

Répondre

62
launchctl unload -w ~/Library/LaunchAgents/org.postgresql.postgres.plist 
rm ~/Library/LaunchAgents/org.postgresql.postgres.plist 
+33

Cela a fonctionné pour moi aussi, sauf que mon chemin d'agent de lancement était: '~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist' – Shevaun

+0

Merci, cela a fonctionné pour moi aussi. J'ai également dû utiliser le chemin homebrew publié par Shevaun –

+2

Quelles sont les causes de ce problème en premier lieu? –

12

Arrêt de serveur PostgreSQL avec -m immediate est une façon dangereuse pour le faire, parce que le mode « immédiat » abandonnera tous les processus serveur sans arrêt net.

Cela entraînera une récupération au redémarrage. Essayez d'arrêter PostgreSQL avec le paramètre -m fast à la place. mode « rapide » n'attend pas pour les clients de se déconnecter et mettre fin à une sauvegarde en ligne en cours. Toutes les transactions actives sont annulées et les clients de force déconnecté

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

Pour plus d'informations sur pg_ctl visitez s'il vous plaît http://www.postgresql.org/docs/9.0/static/app-pg-ctl.html

+0

Le problème était sur l'arrêt propre, mais plutôt sur l'arrêt du serveur. De toute façon, c'est fixe et j'ai mis à jour la solution dans la question. – Greg

1

Si vous avez utilisé Homebrew installer postgresql, puis comme commentaire Shevauns sur la réponse de Greg indique, la procédure correcte est

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
rm ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist