2017-06-17 222 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停止