108 votes

Le serveur PostgreSQL ne s'arrête pas

J'ai un petit problème avec PostgreSQL sur Mac OS X 10.8.4. J'ai accidentellement fait brew rm postgresql --force pendant que le serveur postgres était en marche. Lorsque j'ai installé en utilisant brew install postgresql et a couru pg_ctl -D /usr/local/var/postgres start J'ai compris :

pg_ctl: another server might be running; trying to start server anyway
server starting
FATAL:  lock file "postmaster.pid" already exists                                                                       
HINT:  Is another postmaster (PID 752) running in data directory "/usr/local/var/postgres"?

quand je lance "ps -ef | grep postgres" j'obtiens :

501   752   235   0 12:42PM ??         0:00.01 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
501   754   752   0 12:42PM ??         0:00.00 postgres: checkpointer process       
501   755   752   0 12:42PM ??         0:00.34 postgres: writer process       
501   756   752   0 12:42PM ??         0:00.02 postgres: wal writer process       
501   757   752   0 12:42PM ??         0:00.01 postgres: autovacuum launcher process       
501   758   752   0 12:42PM ??         0:00.01 postgres: stats collector process       
501   945   452   0 12:58PM ttys000    0:00.00 grep postgres

lorsque j'essaie d'arrêter le serveur avec pg_ctl stop -D /usr/local/var/postgres -m fast o pg_ctl -D /usr/local/var/postgres stop -mi J'ai compris :

waiting for server to shut down........................................... Failed
pg_ctl: server does not shut down

EDITAR

which pg_ctl
/usr/local/bin/pg_ctl
pg_ctl --version
pg_ctl (PostgreSQL) 9.2.4

L'essentiel de server.log : https://gist.github.com/anonymous/6106182

189voto

Neara Points 509

J'ai eu le même problème, pg_ctl: server does not shut down . En outre, ps auxwww | grep postgres ne montre aucun postgres en cours d'exécution, alors que pg_ctl -D /usr/local/var/postgres status a montré que postgres est en cours d'exécution. Le redémarrage de mon mac n'a pas aidé, j'ai même été jusqu'à réinitialiser le SMC, mais cette Q/A SO m'a donné une idée de ce que je dois rechercher ensuite : des problèmes de brassage.

En suivant cette ligne de pensée, j'ai trouvé ceci utile article de blog il s'agissait de suivre les commandes qui ont résolu ce problème pour moi :

$ brew services list
$ brew services restart postgresql

J'espère que cela aidera quelqu'un.

Mise à jour - Commande inconnue : services

Après un peu d'investigation suite à l'un des commentaires ('Unknown command : services'), j'ai découvert que les auteurs de Homebrew ont décidé d'enlever services du repo, vu que personne ne veut maintenir ce code.

Vous pouvez en savoir plus à ce sujet aquí y aquí (tickets github associés).

Après avoir creusé un peu plus, j'ai trouvé este qui ajoute services sur les macs.

C'est comme ça que je suis "revenu". services :

~ » brew tap gapple/services
~ » brew services
usage: [sudo] brew services [--help] <command> [<formula>]

Small wrapper around `launchctl` for supported formulae, commands available:
   cleanup Get rid of stale services and unused plists
   list    List all services managed by `brew services`
   restart Gracefully restart selected service
   start   Start selected service
   stop    Stop selected service

Options, sudo and paths:

  sudo   When run as root, operates on /Library/LaunchDaemons (run at boot!)
  Run at boot:  /Library/LaunchDaemons
  Run at login: /Users/user/Library/LaunchAgents

Voici une autre solution proposée : https://apple.stackexchange.com/questions/150300/need-help-using-homebrew-services-command . Je ne l'ai pas vérifié moi-même, donc je ne sais pas si et comment cela fonctionne.

74voto

$ brew services list

$ brew services stop postgresql

Arrêter postgresql mais ça peut prendre du temps. Arrêté avec succès postgresql (étiquette : homebrew.mxcl.postgresql)

48voto

Max Bentata Points 145

J'avais le même problème... la suppression de l'agent de lancement a résolu le problème pour moi :

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

17voto

user3155603 Points 131

J'ai eu un problème similaire. J'avais oublié que j'avais intégré 'lunchy' il y a quelques jours et je l'utilisais comme un wrapper launchctl pour initier le plist. ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist au démarrage. pg_ctl n'était pas efficace à cause de la ligne de code suivante <key>KeepAlive<key> :

      <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
     3 <plist version="1.0">
     4 <dict>
     5   <key>KeepAlive</key>
     6   <true/>
     7   <key>Label</key>
     8   <string>homebrew.mxcl.postgresql</string>
     9   <key>ProgramArguments</key>
    10   <array>
    11     <string>/usr/local/opt/postgresql/bin/postgres</string>
    12     <string>-D</string>
    13     <string>/usr/local/var/postgres</string>
    14     <string>-r</string>
    15     <string>/usr/local/var/postgres/server.log</string>
    16   </array>
    17   <key>RunAtLoad</key>
    18   <true/>
    19   <key>WorkingDirectory</key>
    20   <string>/usr/local</string>
    21   <key>StandardErrorPath</key>
    22   <string>/usr/local/var/postgres/server.log</string>
    23 </dict>
    24 </plist>

Essayer de tuer le processus directement n'a pas fonctionné parce que j'avais besoin de décharger le plist.

    launchctl unload homebrew.mxcl.postgresql.plist

12voto

Elliott Harrison Points 111

J'ai contourné cette erreur en utilisant la commande

pg_ctl stop -m immediate

pg_ctl start

Je n'ai pas eu besoin de décharger la liste de cette façon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X