Postgresql
如何在兩個相互依賴的 upstart 或 /etc/init.d 服務之間放置更大的延遲?
我的
PostgreSQL
服務必須在 之後啟動OpenVPN
,並且當我檢查 rc.X 目錄的順序時,它們被列為 S16openvpn 和 S19postgresql,因此它們的順序正確。但是,通過 VPN 連接到數據庫失敗,並且日誌始終顯示
PostgreSQL
無法在啟動時綁定。我的猜測是所有 OpenVPN 服務都需要一些時間才能啟動並PostgreSQL
在OpenVPN
網路載入完成之前啟動。
OpenVPN
PostgreSQL 有沒有辦法在放棄之前嘗試重新載入並嘗試綁定到網路?
在我看來,您正在嘗試將 postgres 綁定到與隧道關聯的 IP。如果是這種情況,這
ip_nonlocal_bind
是解決您問題的方法。設置 ip_nonlocal_bind 允許您綁定到任何 IP,甚至是與您的電腦無關的 IP,這正是您想要綁定到您還沒有的 IP 時想要的 - 例如,當使用在活動之間浮動的虛擬 IP 時和被動節點。假設這只是 ipv4;
echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind
或者扔進
/etc/sysctl.conf
net.ipv4.ip_nonlocal_bind