Mały problem z PostgreSQL w systemie Mac OS X 10.8.4. Przypadkowo zrobiłem, brew rm postgresql --force
gdy serwer postgres był uruchomiony. Po zainstalowaniu przy użyciu brew install postgresql
i uruchomieniu pg_ctl -D /usr/local/var/postgres start
otrzymuję:
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"?
kiedy uruchamiam "ps -ef | grep postgres" otrzymuję:
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
kiedy próbuję zatrzymać serwer za pomocą pg_ctl stop -D /usr/local/var/postgres -m fast
lub pg_ctl -D /usr/local/var/postgres stop -mi
otrzymuję:
waiting for server to shut down........................................... Failed
pg_ctl: server does not shut down
EDYTOWAĆ
which pg_ctl
/usr/local/bin/pg_ctl
pg_ctl --version
pg_ctl (PostgreSQL) 9.2.4
Streszczenie server.log
: https://gist.github.com/anonymous/6106182
postgresql
macos
terminal
Parker Hutchinson
źródło
źródło
pg_ctl -D /usr/local/var/postgres stop -m immediate
idzie dalej niż dwie pozostałe próby?pg_ctl -D /usr/local/var/postgres stop -mi
i tak, wszystko co otrzymuję to „Serwer się nie wyłącza”postgres --help
nie od razu pokazał flagę „m”.brew reinstall postgresql
stackoverflow.com/a/39781473/6086226 pracował dla mnieOdpowiedzi:
Miałem ten sam problem,
pg_ctl: server does not shut down
. Co więcej,ps auxwww | grep postgres
pokazał , że postgres nie jest uruchomiony, podczas gdypg_ctl -D /usr/local/var/postgres status
pokazał, że postgres jest uruchomiony. Ponowne uruchomienie komputera Mac nie pomogło, posunąłem się nawet do zresetowania SMC, ale to pytanie SO Q / A dało mi pomysł, czego szukać dalej: problemy z zaparzaniem.Kierując się tym tokiem myślenia, znalazłem ten pomocny wpis na blogu , który sprowadzał się do następujących poleceń, które rozwiązały ten problem:
Mam nadzieję, że to komuś pomoże.
Aktualizacja - nieznane polecenie: usługi
Po krótkiej analizie po jednym z komentarzy („Nieznane polecenie: usługi”), dowiedziałem się, że autorzy Homebrew zdecydowali się usunąć
services
z repozytorium, ponieważ nikt nie chce utrzymywać tego kodu.Możesz przeczytać więcej na ten temat tutaj i tutaj (powiązane bilety na github).
Po dłuższym kopaniu znalazłem to repozytorium, które dodaje
services
na komputerach Mac.Oto jak „wróciłem”
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
Oto kolejne sugerowane rozwiązanie: /apple/150300/need-help-using-homebrew-services-command . Sam tego nie sprawdziłem, więc nie wiem, czy i jak to działa.
źródło
bundle exec rake pg:stop
. Ale to nie działało, prowadząc dopg_ctl: server does not shut down
. To obejściebrew services restart postgresql
zadziałało dla mnie. 👌$ brew services list
$ brew services stop postgresql
Zatrzymywanie
postgresql
, ale może to chwilę potrwać → Pomyślnie zatrzymanopostgresql
(etykieta: homebrew.mxcl.postgresql)źródło
pg_ctl ... stop
się bez skutku. Gdy uruchomiłem usługi parzenia stop postgresql, mój pg_ctl ... stop działa teraz zgodnie z oczekiwaniami. Nie wiem jak, ale cieszę się, że to rozwiązało problem!brew services stop postgresql@10
Miałem podobny problem. Zapomniałem, że kilka dni temu zintegrowałem „lunchy” i używałem go jako wrappera launchctl do inicjowania plist
~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
podczas uruchamiania. pg_ctl nie był skuteczny z powodu następującego wiersza kodu<key>KeepAlive<key>
:Próba bezpośredniego zabicia procesu nie zadziałała, ponieważ musiałem zwolnić plik plist.
źródło
homebrew.mxcl.postgresql92.plist
. Sprawdź się.Miałem ten sam problem ... usunięcie agenta uruchamiania rozwiązało problem za mnie:
źródło
Obejrzałem ten błąd za pomocą polecenia
pg_ctl stop -m immediate pg_ctl start
Nie musiałem w ten sposób rozładowywać plista.
źródło
okazuje się, że mój brew.plist for postgres musiał zostać wyładowany i usunięty w ~ / Library / LaunchAgents /. Po restarcie wszystko jest w porządku ... Pytanie zamykające.
źródło
W przypadku polegania na PostgreSQL zainstalowanym przez brew, następujące polecenie działało w celu wyłączenia go.
> brew services stop postgresql stopping `postgresql`... (might take a while) ==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
Jak wspomniano w innej odpowiedzi, przeglądanie listy procesów i zabijanie czegokolwiek związanego z postgresem nie działa.
ps aux | grep postgres kill $PID
źródło
Nie
postgres
zacząłem przezbrew services
, więc nie mogłem tego zatrzymać w ten sposób.To zadziałało.
Użyj
-D
parametru od góry.$ pg_ctl stop -D "/Users/username/Library/Application Support/Postgres/var-9.6"
źródło