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 ConditionPathExists=/etc/postgresql/%I/postgresql.conf PartOf=postgresql.service ReloadPropagatedFrom=postgresql.service Before=postgresql.service [Service] Type=forking # @: use "postgresql@%i" as process name ExecStart=@/usr/bin/pg_ctlcluster postgresql@%i --skip-systemctl-redirect %i start ExecStop=/usr/bin/pg_ctlcluster --skip-systemctl-redirect -m fast %i stop 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
curl https://exampleconfig.com/api/v1/config/original/c60e225d986978418a05bc6064fa0c3f?hint=postgresql@.service
wget -O postgresql@.service https://exampleconfig.com/api/v1/config/original/c60e225d986978418a05bc6064fa0c3f?hint=postgresql@.service
<prompt><role>DevOps agent</role><source url='https://exampleconfig.com/api/v1/config/original/c60e225d986978418a05bc6064fa0c3f?hint=postgresql@.service' /><config><app>PostgreSQL</app><os>Debian 9 (Stretch)</os><location>/etc/systemd/postgresql@.service</location><lines>33</lines><md5>c60e225d986978418a05bc6064fa0c3f</md5><sha256>5d3626d9805765d6db63fba1ef7314a294f1b4085f5a2814ada58ea3fcf9cfa8</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 Debian 9 (Stretch). 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 Debian 9 (Stretch).
Can I use this for PostgreSQL troubleshooting?
Yes. Diff it against yours to find drift, then restore only the sections you need.