2016-10-18 121 views
1

我在Ubuntu 16.04上遇到了PostgreSQL 9.5 + 173的問題,並且偶然發現我的研究中存在以下線索,這些線索有點描述我看到的行爲:使用systemd重新啓動後PostgreSQL 9.5無法啓動

https://www.postgresql.org/message-id/CAFyxdeT%2B%3Dx-d0oNbFPoe%2B4xnt0Qdfi%2BzAEn%2BrQmEK0AZbJFRtg%40mail.gmail.com

https://www.postgresql.org/message-id/562E4453.5090803%40aklaver.com

長話短說我有什麼它和PostgreSQL運行Ubuntu 16的全新安裝。我已經停止PostgreSQL改變了數據目錄和端口和其他一些設置,它開始恢復正常。

我可以通過systemctl手動啓動和停止PostgreSQL,沒有任何問題。我也可以連接到數據庫,並通過ps ax | grep postgres驗證它是否正在運行。

但是,在我重新啓動後,PostgreSQL不會啓動。任何嘗試通過systemctl start postgresql.service啓動它都不會做任何事情,也不會失敗。我能夠得到它的唯一方法是如果我打電話給systemctl start [email protected]

我做了一些調查,並看着兩個postgresql.service[email protected]腳本和意識到postgresql.service腳本什麼都不做如上文和PostgreSQL的線程陳述@ 9.5-main.service具有PartOf指令,這意味着它應該作爲sytemd文檔狀態從postgresql.service觸發,但不是由於某種原因。基本上我很困惑,爲什麼一切工作之前,我重新啓動,然後重新啓動後不工作。有什麼我失蹤?我開始走過CRAZY這麼簡單。

更新:我添加了一個ExecStartPre=/bin/touch /tmp/postgresq.log[email protected],看看它實際上越來越呼籲引導和事實並非如此。手動調用systemctl start [email protected]將在/ tmp目錄中創建該文件。

更新:我還發現,重啓後調用systemd daemon-reload會讓我通過systemctl start postgresql命令啓動Postgres的。

回答

0

原來,問題出在於我將分區間的/etc/postgresql/9.5/main/符號鏈接到了一個不能立即使用的自定義分區,所以當PostgreSQL試圖在啓動時嘗試啓動時,它不會因爲它的配置文件不可用。這描述了發生了什麼,因爲我可以在登錄後手動啓動PostgreSQL。

0

您是否嘗試過使用systemctl enable postgresql?這會告訴systemd在啓動後啓動這項服務。之後嘗試重新啓動。

+0

是的postgresql是通過'systemctl enable postgresql'啓用的, – ihatecache