2017-06-17 308 views
1

我一直试图杀死在端口5432上运行的PostgreSQL进程无济于事。每当我型sudo lsof -i :5432,我看到类似下面:无法杀死Postgres进程

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) 

然后我试图杀掉进程587在这个例子与sudo kill -9 587,但随后另一个进程在同一端口上自动重新启动!我试图在活动监视器上杀死它也无济于事。请帮忙?

感谢,因为它是从launchd守护进程催生 劳拉

+1

*不*使用'杀-9'在PostgreSQL主进程(* postmaster *)上。有些PostgreSQL后端进程不会立即死亡,如果在所有旧进程结束之前启动了新的postmaster,则最终会导致数据损坏。 –

+0

Laurenz是对的。从命令行中杀死Postgres进程是一个坏主意。你需要正确关闭Postgres(例如'pg_ctl stop') –

回答

0

的过程重新启动可能。您可以尝试找到它,并通过launchctl命令杀死它:

$ launchctl list 

要杀死一个进程,你会:

$ launchctl kill 
+0

我发现了几个与Postgres相关的进程,但我该如何杀掉它们?我尝试过'launchctl kill 5660com.postgresapp.Postgres2MenuHelper.1184',但没有得到正确的语法:/ – flaurida

+0

你必须使用信号名称或编号...... so'launchctl kill 9 ...'如果进程再次产生你也可以尝试'launchctl disable ...'和'launchctl unload'。在终端中尝试使用'man launchctl'来寻求帮助。 –

0

我有9.5和安装9.6,所以

须藤苏 - postgres

/Library/PostgreSQL/9.6/bin/pg_ctl -D /Library/PostgreSQL/9.6/data stop

9.5开始......

/Library/PostgreSQL/9.5/bin/pg_ctl -D /Library/PostgreSQL/9.5/data停止