When should I use this postgresql@.service?
Use it to restore a missing default, confirm what shipped, or diff against your current PostgreSQL config.
# 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 AssertPathExists=/etc/postgresql/%I/postgresql.conf RequiresMountsFor=/etc/postgresql/%I /var/lib/postgresql/%I PartOf=postgresql.service ReloadPropagatedFrom=postgresql.service Before=postgresql.service # stop server before networking goes down on shutdown After=network.target [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=/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
curl https://exampleconfig.com/api/v1/config/original/5b25f284506ad288820d584bea86fb23?hint=postgresql@.service
wget -O postgresql@.service https://exampleconfig.com/api/v1/config/original/5b25f284506ad288820d584bea86fb23?hint=postgresql@.service
<prompt><role>DevOps agent</role><source url='https://exampleconfig.com/api/v1/config/original/5b25f284506ad288820d584bea86fb23?hint=postgresql@.service' /><config><app>PostgreSQL</app><os>Ubuntu 24.04 LTS (Noble Numbat)</os><location>/etc/systemd/postgresql@.service</location><lines>40</lines><md5>5b25f284506ad288820d584bea86fb23</md5><sha256>4c44931bba34e0754b7c0762852a5c1b615a1e307df9c458d231232d55e4c907</sha256></config></prompt>
Paste into Claude, ChatGPT, or any AI assistant.
sudo apk add postgresql
sudo apt update && sudo apt install postgresql
sudo yum install postgresql17-server
sudo apt update && sudo apt install postgresql
When should I use this postgresql@.service?
Use it to restore a missing default, confirm what shipped, or diff against your current PostgreSQL config.
How do I restore PostgreSQL defaults?
Download the file, back up the current one in /etc/systemd/postgresql@.service, replace it, then reload or restart PostgreSQL.
Is postgresql@.service safe for production?
It is the vendor default for Ubuntu 24.04 LTS (Noble Numbat). Treat it as a baseline and review security and performance settings before production use.
How does this differ from other OS versions?
Defaults vary by distro and version. This copy matches Ubuntu 24.04 LTS (Noble Numbat).
Can I use this for PostgreSQL troubleshooting?
Yes. Diff it against yours to find drift, then restore only the sections you need.