PostgreSQL /etc/systemd/postgresql@.service

Authentic ๐Ÿ“‹ Ubuntu 18.04 LTS (Bionic Beaver) 37 lines

File Info

Size
37 lines
MD5
d4870e6f0696443307fdf8ce61f840b6
SHA256
389a56fc370f90c51d13f9251712bddd1b55f690ae0a48a79716baeb3e5adf60

Quick Commands

curl:
curl https://exampleconfig.com/api/v1/config/original/d4870e6f0696443307fdf8ce61f840b6?hint=postgresql@.service
wget:
wget -O postgresql@.service https://exampleconfig.com/api/v1/config/original/d4870e6f0696443307fdf8ce61f840b6?hint=postgresql@.service
/etc/systemd/postgresql@.service
# systemd service template for PostgreSQL clusters. The actual instances will
# be called "postgresql@version-cluster", e.g. "postgresql@9.3-main". The
# variable %i expands to "version-cluster", %I expands to "version/cluster".
# (%I breaks for cluster names containing dashes.)

[Unit]
Description=PostgreSQL Cluster %i
ConditionPathExists=/etc/postgresql/%I/postgresql.conf
PartOf=postgresql.service
ReloadPropagatedFrom=postgresql.service
Before=postgresql.service

[Service]
Type=forking
# -: ignore startup failure (recovery might take arbitrarily long)
# the actual pg_ctl timeout is configured in pg_ctl.conf
ExecStart=-/usr/bin/pg_ctlcluster --skip-systemctl-redirect %i start
# 0 is the same as infinity, but "infinity" needs systemd 229
TimeoutStartSec=0
ExecStop=/usr/bin/pg_ctlcluster --skip-systemctl-redirect -m fast %i stop
TimeoutStopSec=1h
ExecReload=/usr/bin/pg_ctlcluster --skip-systemctl-redirect %i reload
PIDFile=/var/run/postgresql/%i.pid
SyslogIdentifier=postgresql@%i
# prevent OOM killer from choosing the postmaster (individual backends will
# reset the score to 0)
OOMScoreAdjust=-900
# restarting automatically will prevent "pg_ctlcluster ... stop" from working,
# so we disable it here. Also, the postmaster will restart by itself on most
# problems anyway, so it is questionable if one wants to enable external
# automatic restarts.
#Restart=on-failure
# (This should make pg_ctlcluster stop work, but doesn't:)
#RestartPreventExitStatus=SIGINT SIGTERM

[Install]
WantedBy=multi-user.target

How to Install PostgreSQL

Alpine Linux

sudo apk add postgresql

Debian

sudo apt update && sudo apt install postgresql

Red Hat Enterprise Linux

sudo yum install postgresql17-server

Ubuntu

sudo apt update && sudo apt install postgresql

Configuration File Location

File Path
/etc/systemd/postgresql@.service
Directory
/etc/systemd/
Significance
System-wide configuration directory
Description
Files in /etc/ contain system-wide configuration settings that affect all users.

Quick Answers

When should I use this postgresql@.service?

Use this file to restore PostgreSQL defaults after misconfiguration, for fresh installations, or as a customization baseline.

How do I restore PostgreSQL defaults?

Download this file, backup your current config, then replace /etc/systemd/postgresql@.service. Restart PostgreSQL service.

Is postgresql@.service safe for production?

Factory default from PostgreSQL on Ubuntu 18.04 LTS (Bionic Beaver). Safe baseline, but customize for your requirements.

How does this differ from other OS versions?

This config is from Ubuntu 18.04 LTS (Bionic Beaver). Other OS versions may have different defaults. Check compatibility section.

Can I use this for PostgreSQL troubleshooting?

Yes, compare this original config with your current settings to identify problematic modifications.