微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – Systemd postgresql启动脚本

我正在将postgresql安装到第二台服务器上

以前我安装了postgresql,然后使用提供的脚本

./contrib/start-scripts/linux

放入正确的目录

# cp ./contrib/start-scripts/linux /etc/rc.d/init.d/postgresql92
# chmod 755 /etc/rc.d/init.d/postgresql92

然后我可以按预期执行

# service postgresql92 start

然而,新机器使用的是Systemd,看起来有一种完全不同的方法

我不想破坏这个并破坏一些东西,所以我想知道是否有人可以指出我正确的方向如何实现相同的结果

解决方法:

从源安装时,您需要添加一个与源安装一起使用的systemd单元文件.对于RHEL,Fedora我的单元文件如下:

/usr/lib/systemd/system/postgresql.service

[Unit]
Description=Postgresql database server
After=network.target

[Service]
Type=forking

User=postgres
Group=postgres

# Where to send early-startup messages from the server (before the logging
# options of postgresql.conf take effect)
# This is normally controlled by the global default set by systemd
# StandardOutput=syslog

# disable OOM kill on the postmaster
OOMscoreAdjust=-1000
# ... but allow it still to be effective for child processes
# (note that these settings are ignored by Postgres releases before 9.5)
Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
Environment=PG_OOM_ADJUST_VALUE=0

# Maximum number of seconds pg_ctl will wait for postgres to start.  Note that
# PGSTARTTIMEOUT should be less than TimeoutSec value.
Environment=PGSTARTTIMEOUT=270

Environment=PGDATA=/usr/local/pgsql/data


ExecStart=/usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -s -w -t ${PGSTARTTIMEOUT}
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D ${PGDATA} -s

# Give a reasonable amount of time for the server to start up/shut down.
# Ideally, the timeout for starting Postgresql server should be handled more
# nicely by pg_ctl in ExecStart, so keep its timeout smaller than this value.
TimeoutSec=300

[Install]
WantedBy=multi-user.target

然后在启动时启用该服务并启动Postgresql服务:

$sudo systemctl daemon-reload # load the updated service file from disk
$sudo systemctl enable postgresql
$sudo systemctl start postgresql

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐