通过终端在 Mac 上停止 postgreSQL 服务

Posted

技术标签:

【中文标题】通过终端在 Mac 上停止 postgreSQL 服务【英文标题】:Stop postgreSQL service on Mac via terminal 【发布时间】:2016-03-14 09:50:08 【问题描述】:

目前正在运行 postgreSQL 9.4.5_2

我试过了

pg_ctl stop -W -t 1 -s -D /usr/local/var/postgres -m f

通常没有消息就是好消息,但之后我会运行

pg_ctl status -D /usr/local/var/postgres 

并获取pg_ctl: server is running (PID: 536)

我也试过了

pg_ctl restart -w -D /usr/local/var/postgres -c -m i

响应消息是:

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

我还检查了我的 /Library/LaunchDaemons/ 以了解为什么该服务在登录时启动但到目前为止没有运气。有人对我接下来应该检查的地方有任何想法吗?活动监视器中的强制退出也对我没有任何帮助。

【问题讨论】:

【参考方案1】:

遇到了同样的问题,我在本地安装了 postgres,想换成 docker 容器。

我通过 1) 卸载 postgres 2) 杀死 postgres 端口上的剩余进程,彻底解决了这个问题。如果您不卸载该进程重新启动并再次获取端口 - 查看您的 Brewfile 表单 brew bundle dump 以检查 restart_service: true 标志。

我推断,由于我使用的是容器,所以无论如何我都不应该需要本地容器,但是 !请注意,这将从您的系统中删除 postgres

brew uninstall postgres
...
lsof -i :5432 # this to find the PID for the process
kill - 9 <the PID you found at previous command> 

注意:如果您仍想使用psql,您可以brew install libpq,并将 psql 添加到您的 PATH(命令输出显示您要添加到您的 .zshrc 或类似内容的内容)

【讨论】:

【参考方案2】:

您可以使用此命令停止服务器

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

【讨论】:

【参考方案3】:

我尝试了各种选择;最后,下面的命令奏效了。

sudo -u postgres ./pg_ctl -D /your/data/directory/path stop

例子

sudo -u postgres ./pg_ctl -D /Library/PostgreSQL/11/data stop

【讨论】:

这很好,但请注意 - 您的命令假定您与 pg_ctl 二进制文件位于同一目录中。通常,无论您通过什么安装过程将 Postgres 安装到您的机器上,都会将该二进制文件放在您路径中的目录中。所以可能更普遍的是sudo -u postgres pg_ctl -D /Library/PostgreSQL/11/data stop 很好的解决方案。但不是./pg_ctl。请使用pg_ctl【参考方案4】:

尝试了 sudo 和 su 但没有这样的运气。 刚找到这个 gui

https://github.com/MaccaTech/postgresql-mac-preferences

如果有人可以帮助使用终端命令,将不胜感激,但在此之前,gui 将完成工作。

【讨论】:

以上是关于通过终端在 Mac 上停止 postgreSQL 服务的主要内容,如果未能解决你的问题,请参考以下文章

mac系统上使用CRT作为终端,请教如何终止 traceroute

XAMPP Apache 停止在 Mac 上工作

mac下安装postgreSql

如何通过终端/CLI 在 Mac 机器上安装 OSX .provisionprofile?

在 Mac 上通过终端连接到 EC2 实例

通过 Mac 终端在 iOS 设备文件上安装我的 .app 发布文件