【发布时间】:2017-06-17 17:26:48
【问题描述】:
我一直试图杀死在端口 5432 上运行的 PostgreSQL 进程,但无济于事。每当我输入sudo lsof -i :5432 时,我都会看到如下内容:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
postgres 587 postgres 4u IPv6 0x218f97e9af5d0303 0t0 TCP *:postgresql (LISTEN)
postgres 587 postgres 5u IPv4 0x218f97e9ae0f6c63 0t0 TCP *:postgresql (LISTEN)
然后我尝试使用sudo kill -9 587 终止本例中的进程587,但随后另一个进程在同一端口上自动重新启动!我也尝试在活动监视器上杀死它,但无济于事。请帮忙?
谢谢, 劳拉
【问题讨论】:
-
不要不在主 PostgreSQL 进程(postmaster)上使用
kill -9。存在一些 PostgreSQL 后端进程不会立即死亡的危险,如果在所有旧进程消失之前启动新的 postmaster,您将最终导致数据损坏。 -
劳伦兹是对的。从命令行杀死 Postgres 进程是个坏主意。您需要正确关闭 Postgres(例如
pg_ctl stop) -
我有同样的问题,首先我试图用 pg_terminate_backend 杀死一个用户,没有结果,然后我执行 pg_ctl stop -mf,但没有结果,就在我杀死特定会话时with kill -9 死了,但我的服务器重新启动
标签: macos postgresql