最近我遇到了一个问题,需要使用自定义的PGDATA路径来启动postgresql服务。默认数据目录(/var/lib/pgsql/9.3/data/)未初始化,因此触发了这些错误。问题似乎在于Centos 7上的服务启动程序会剥离所有环境变量,包括PGDATA。
是否存在一种配置方式
service postgresql-9.3 start
如何使用自定义环境变量?是否有配置文件需要定义这些变量?
提前感谢你的回答!
最近我遇到了一个问题,需要使用自定义的PGDATA路径来启动postgresql服务。默认数据目录(/var/lib/pgsql/9.3/data/)未初始化,因此触发了这些错误。问题似乎在于Centos 7上的服务启动程序会剥离所有环境变量,包括PGDATA。
是否存在一种配置方式
service postgresql-9.3 start
如何使用自定义环境变量?是否有配置文件需要定义这些变量?
提前感谢你的回答!
感谢上面的回答,我们今天刚刚遇到了这个变化。 您还可以保留默认设置,并通过将以下内容放入/etc/systemd/system/postgresql-9.3.service中仅覆盖PGDATA变量:
# Include the default config:
.include /lib/systemd/system/postgresql-9.3.service
[Service]
Environment=PGDATA=<your path here>/pgsql/9.3/data
这样做可以避免重新将/usr/lib/systemd/system/postgresql-9.3.service中的更改重新集成到您的本地副本中。
systemctl daemon-reload
命令。 - Robert Kubiak好的,我有一个解决方案适用于我的情况。
nano /etc/systemd/system/postgresql-9.3.service
将内容从 /usr/lib/systemd/system/postgresql-9.3.service 复制过来,并更改 PGDATA 变量。然后
systemctl daemon-reload
然后我正常启动服务,一切都运行良好。诀窍在于修改该服务的配置文件。
/etc/default/$servicename
路径下引用一个文件,并在那里配置变量。pgsql 的 init 脚本是否也这样做呢?我不知道,你需要去查看一下。 - Etan Reisner/etc/default
目录中寻找文件,然后使用所需的任何变量等创建该文件。grep /etc/rc.d/init.d/postgresql-9.3 /default
可能是一个不错的开始。 - Etan Reisner