postgresql.service
内容是
# systemd service for managing all PostgreSQL clusters on the system. This
# service is actually a systemd target, but we are using a service since
# targets cannot be reloaded.
[Unit]
Description=PostgreSQL RDBMS
[Service]
Type=oneshot
ExecStart=/bin/true
ExecReload=/bin/true
RemainAfterExit=on
[Install]
WantedBy=multi-user.target
我尝试通过启动 PostrgeSQL,service postgresql start
并对内容感到惊讶 postgresql.service
,因为它启动/bin/true
uname -a
输出:
Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64 GNU/Linux
所以我的问题是:为什么会发生这种情况,以及如何解决它?
答案1
正如@termcap 在线程中指出的那样,postgresql@{version}-main.service
这是新的服务名称。
因此使用。systemctl {start|enable} [email protected]
明智的做法是,postgresql.service
应该包含一个友好的迁移警告,而不是/bin/true
(自己解决)。
答案2
我确认了这个问题,操作系统——xenial,Postgres 版本——10(来自官方 repo 的最新版本)。真是令人沮丧。
正确的文件:
[Unit]
Description=PostgreSQL database server
Documentation=man:postgres(1)
[Service]
Type=notify
User=postgres
ExecStart=/usr/lib/postgresql/10/bin/postgres -D /var/lib/postgresql/10/main -c config_file=/etc/postgresql/10/main/postgresql.conf
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0
[Install]
WantedBy=multi-user.target