我在Ubuntu 16.04上遇到了PostgreSQL 9.5 + 173的问题,我偶然发现我的研究中的以下线程有点描述了我所看到的行为:
https://www.postgresql.org/message-id/562E4453.5090803%40aklaver.com
长话短说我有一个全新的Ubuntu 16安装,没有任何内容和PostgreSQL运行。我已经停止PostgreSQL更改了数据目录和端口以及其他一些设置,它开始恢复正常。
我可以通过systemctl
手动启动和停止PostgreSQL,没有任何问题。我也可以连接到数据库,并可以通过ps ax | grep postgres
验证它是否正在运行。
然而,我重新启动后PostgreSQL将无法启动。任何通过systemctl start postgresql.service
启动它的尝试都不会做任何事情并且不会失败。我能够启动它的唯一方法是调用systemctl start postgresql@9.5-main.service
。
我做了一些调查并查看了 postgresql.service 和 postgresql@9.5-main.service 脚本,并意识到postgresql.service脚本没有按照规定执行任何操作在上面的线程中,postgresql @ 9.5-main.service有PartOf指令,这意味着它应该从postgresql.service作为sytemd docs状态被触发,但它不是出于某种原因。基本上我不知道为什么一切都在我重新启动之前工作,然后在我重新启动后不起作用。有什么我想念的吗?我开始对 CRAZY 开始这么简单。
更新:我在 postgresql@9.5-main.service 中添加了ExecStartPre=/bin/touch /tmp/postgresq.log
,看看它是否真的在启动时被调用,但事实并非如此。手动调用systemctl start postgresql@9.5-main.service
会在/ tmp目录中创建文件。
更新:我还发现重启后调用systemd daemon-reload
将允许我通过systemctl start postgresql
命令启动postgres。
答案 0 :(得分:0)
您是否尝试过使用systemctl启用postgresql?这将告诉systemd在启动后启动此服务。之后尝试重新启动。
答案 1 :(得分:0)
事实证明,问题在于我将跨越分区的/etc/postgresql/9.5/main/
符号链接到一个立即无法使用的自定义分区,所以当PostgreSQL尝试启动它时它不会因为它的配置文件不可用。这描述了我登录后手动启动PostgreSQL后发生的事情。