Centos 7.x configuration PostgreSQL self-booting

Source: Internet
Author: User
Tags chmod postgresql

PostgreSQL starts with the system
The document describe how to configure automatic start PostgreSQL when the system starts.

The ways suitable for systemd on CentOS 7.0 or latest release.



1. Create and configure postgresql.service

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

[Unit]

    Description = PostgreSQL database server

    After = remote-fs.target nss-lookup.target

    After = network.target sshd.service

    After = proc-fs-nfsd.mount

    After = network.target local-fs.target

    After = nfs-config.service

    After = nfs-mountd.service

    After = nfs-blkmap.service

    After = nfs-client.target

    After = nfs-config.service

    After = nfs-idmapd.service

    After = nfs-idmap.service

    After = nfs-lock.service

    After = nfslock.service

    After = nfs-mountd.service

    After = nfs-secure-server.service

    After = nfs-secure.service

    After = nfs.service

    After = nfs-utils.service

[Service]

    Type = forking

    User = postgres

    Group = appuser

    Environment = PGPORT = 5432

    Environment = PGDATA = / data / 01 / local / pgsql / data

    ExecStart = / data / 01 / local / pgsql / bin / pg_ctl start -D $ {PGDATA} -s -o "-p $ {PGPORT}" -w -t 300

    ExecStop = / data / 01 / local / pqsql / bin / pg_ctl stop -D $ {PGDATA} -s -m fast

    ExecReload = / data / 01 / local / pgsql / bin / pg_ctl reload -D $ {PGDATA} -s

    TimeoutSec = 300

[Install]

    WantedBy = remote-fs.target

#chmod 644 /usr/lib/systemd/system/postgresql.service



2. Reload systemd and enable postgresql.service

#systemctl daemon-reload



#systemctl enable postgresql.service

Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql.service to /usr/lib/systemd/system/postgresql.service.



#systemctl is-enabled postgresql.service

Enabled



#systemctl start postgresql.service



#systemctl status postgresql.service

● postgresql.service-PostgreSQL database server

   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)

   Active: active (running) since Fri 2018-02-23 22:48:49 KST; 28min ago

Main PID: 2506 (postgres)

   CGroup: /system.slice/postgresql.service

           ├─2506 / data / 01 / local / pgsql / bin / postgres -D / data / 01 / local / pgsql / data -p 5432

           ├─2508 postgres: logger process

           ├─2510 postgres: checkpointer process

           ├─2511 postgres: writer process

           ├─2512 postgres: wal writer process

           ├─2513 postgres: autovacuum launcher process

           └─2514 postgres: stats collector process

Feb 23 22:48:47 ec5d-pbfcompilation-02 systemd [1]: Starting PostgreSQL database server ...

Feb 23 22:48:48 ec5d-pbfcompilation-02 pg_ctl [1414]: <2018-02-23 22: 48: 48.671 KST> LOG: redirecting log output to logging collector process

Feb 23 22:48:48 ec5d-pbfcompilation-02 pg_ctl [1414]: <2018-02-23 22: 48: 48.671 KST> HINT: Future log output will appear in directory "pg_log".

Feb 23 22:48:49 ec5d-pbfcompilation-02 systemd [1]: Started PostgreSQL database server.



Note: CentOS7.x not support /etc/rc.local script file, Detailed description as following:

#cat /etc/rc.local

#! / bin / bash

# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES

#

# It is highly advisable to create own systemd services or udev rules

# to run scripts during boot instead of using this file.

#It is wise to create a systemd service or udev rule to run the script when the system restarts, instead of using /etc/rc.local

#

# In contrast to previous versions due to parallel execution during boot

# this script will NOT be run after all other services.

#Compared with the previous system version, when the system starts, since the services run in parallel, /etc/rc.local will not run after other services start

#

# Please note that you must run 'chmod + x /etc/rc.d/rc.local' to ensure

# that this script will be executed during boot.

Although it is said here that you can use chmod + x /etc/rc.local to execute this script, I add a line to this file: su-postgres -c ‘pg_ctl start -D / usr / local / pgsql / data’

Then reboot test many times, postgres did not start successfully with the system in the end, so it is no longer recommended (officially not recommended) to start postgres using the /etc/rc.local file, as well as start other services, it is best to configure one systemd service.







Centos 7.x configure PostgreSQL to start automatically


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.