2011-08-05 20 views
59

Instalé PostgreSQL usando Homebrew en Lion. Comienza bien pero no se apaga. Probé:El servidor PostgreSQL no se cerró en 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 

me fijo este problema eliminando el agente de lanzamiento:

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

Esa es la solución correcta. Me funcionó en OS X Snow Leopard también. No es necesario eliminar el plist sin embargo, solo tiene que hacer la descarga. Puede reiniciarlo emitiendo: '$ launchctl load -w ~/Library/LaunchAgents/org.postgresql.postgres.plist' – stantonk

+0

@Greg: Por favor, agregue su solución como una respuesta y acéptela, de modo que esta pregunta no aparece en la lista de preguntas sin respuesta. – kgrittn

+1

si está instalado con homebrew puede ser algo como esto: '~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist' – lfender6445

Respuesta

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

Esto funcionó para mí también, excepto que mi ruta de Agente de Lanzamiento fue: '~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist' – Shevaun

+0

Gracias, esto también funcionó para mí. También tuve que usar el path homebrew publicado por Shevaun –

+2

¿Qué hace que este problema suceda en primer lugar? –

12

El cierre de PostgreSQL Server con -m immediate es una forma peligrosa para hacerlo, porque el modo “inmediato” abortará todos los procesos del servidor sin un apagado limpio.

Esto dará lugar a una ejecución de recuperación al reiniciar. Intente cerrar PostgreSQL con el parámetro -m fast en su lugar. el modo "rápido” no espera a los clientes para desconectar y terminará una copia de seguridad en curso. Todas las transacciones activas se deshacen y los clientes están desconectados por la fuerza

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

Para obtener más información acerca de pg_ctl visite http://www.postgresql.org/docs/9.0/static/app-pg-ctl.html

+0

El problema era sobre el cierre limpio, sino sobre el cierre del servidor. De todos modos, es fijo y he actualizado la solución en la pregunta. – Greg

1

Si utilizó Homebrew para instalar PostgreSQL, entonces como Shevauns comentario sobre la respuesta de Greg indica, el procedimiento correcto es

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