linux执行pgsqlsql脚本,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

标签:linux,postgresql,systemd,scripting

来源: https://codeday.me/bug/20190809/1626758.html

你可能感兴趣的:(linux执行pgsqlsql脚本,linux – Systemd postgresql启动脚本)