无法启动postgresql.service?

无法启动postgresql.service?,postgresql,archlinux,systemd,Postgresql,Archlinux,Systemd,我正在使用ArchLinux(4.8.13-1-arch)。我正试图按照指示设置PostgreSQL 演出后 [postgres@BitBox ~]$ initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data' The files belonging to this database system will be owned by user "postgres". This user must also own the server pro

我正在使用ArchLinux(4.8.13-1-arch)。我正试图按照指示设置PostgreSQL

演出后

[postgres@BitBox ~]$ initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data'
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgres/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

pg_ctl -D /var/lib/postgres/data -l logfile start
成功地,我使用exit命令返回到我的常规用户

[postgres@BitBox ~]$ exit
logout
然后,在尝试启动postgresql.service时,出现以下错误:

[code_master5@BitBox ~]$ sudo systemctl start postgresql.service
Failed to start postgresql.service: Unit postgresql.service not found.
我甚至没有得到服务的状态:

[code_master5@BitBox ~]$ sudo systemctl status postgresql.service
Unit postgresql.service could not be found.

我卡住了

最后,我想出了这个办法。已经存在一个文件

/usr/lib/systemd/system/postgresql-9.6.service
因此,可能是由于存在此文件,我无法启动postgresql.service。然后我尝试启动postgresql-9.6.service,如下所示:

[code_master5@BitBox ~]$ sudo systemctl start postgresql-9.6.service
Failed to start postgresql-9.6.service: Unit postgresql-9.6.service not found.
而且,正如您看到的输出,它再次失败

我只是用sudo删除了这个文件,因为我认为可能是postgresql.service文件不是由相关程序创建的,因为存在这个文件。然后我重新启动了系统。从那以后,它工作得很好,正如您可以看到以下输出:

[code_master5@BitBox ~]$ sudo systemctl status postgresql.service
[sudo] password for code_master5: 
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor p
Active: active (running) since Sat 2017-01-28 09:31:30 IST; 7h ago
Main PID: 342 (postgres)
Tasks: 6 (limit: 4915)
CGroup: /system.slice/postgresql.service
       ├─342 /usr/bin/postgres -D /var/lib/postgres/data
       ├─358 postgres: checkpointer process   
       ├─359 postgres: writer process   
       ├─360 postgres: wal writer process   
       ├─361 postgres: autovacuum launcher process   
       └─362 postgres: stats collector process   

Jan 28 09:31:26 BitBox systemd[1]: Starting PostgreSQL database server...
Jan 28 09:31:28 BitBox postgres[340]: FATAL:  the database system is starting up
Jan 28 09:31:28 BitBox postgres[340]: LOG:  database system was shut down at 201
Jan 28 09:31:29 BitBox postgres[340]: FATAL:  the database system is starting up
Jan 28 09:31:29 BitBox postgres[340]: LOG:  MultiXact member wraparound protecti
Jan 28 09:31:29 BitBox postgres[340]: LOG:  database system is ready to accept c
Jan 28 09:31:29 BitBox postgres[340]: LOG:  autovacuum launcher started
Jan 28 09:31:30 BitBox systemd[1]: Started PostgreSQL database server.
我当然想警告所有有同样问题的人。请你自己承担我所做的一切风险。因为这些是系统文件。弄乱这些会破坏你的周末

不过我还是有点困惑。欢迎解释

试试这个:

service postgresql-10.service restart
service postgresql-XX.service restart

我发现这两个命令非常方便。虽然这篇文章很老了,也许其他人将来会从中受益

systemctl list-units|grep postgresql
service postgresql-12.service restart

对于PostGres 9.4.12,我尝试了以下方法,效果良好:

./pg_ctl start
您可以检查它的状态:

./pg_ctl status

您使用了什么命令安装postgresql?OP似乎使用了RHEL7或CentOS7,如systemctl命令所示。如果是,服务。。。重启命令无效。对于Manjaro Linux/ArchLinux:
systemctl restart postgresql.service
你救了我一天