У меня есть несколько установок Postgres на моей машине с MacOS Mojave. Версия 10.7 работает, и я хочу ее закрыть, чтобы запустить 9.6.
Он определенно работает:
$ psql -h localhost -U postgres
Password for user postgres:
psql (9.6.11, server 10.7)
Но я не могу остановиться:
/Library/PostgreSQL/10 $ bin/pg_ctl stop
pg_ctl: PID file "/usr/local/var/[email protected]/postmaster.pid" does not exist
Is server running?
Ни в версии 9.6 pg_ctl:
$ pg_ctl stop
pg_ctl: PID file "/usr/local/var/[email protected]/postmaster.pid" does not exist
Is server running?
$ which pg_ctl
/usr/local/opt/[email protected]/bin/pg_ctl
Как я могу выключить сервер, если pg_ctl не может его контролировать? Я не помню, как запускал его — возможно, он запускался автоматически, когда машина в последний раз перезагружалась. Я думаю, что установил его с помощью Homebrew, но я не уверен.
В итоге это сработало:
Сначала получите pid:
$ sudo lsof -i:5432
Password:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
postgres 73 postgres 4u IPv6 0x8880707cadb2d1ab 0t0 TCP *:postgresql (LISTEN)
postgres 73 postgres 5u IPv4 0x8880707cadac18ab 0t0 TCP *:postgresql (LISTEN)
Теперь выключите его (SIGTERM):
$ sudo kill -15 73