什么时候该用这个 postgresql@.service?
用来恢复缺失的默认文件、确认发行版本带了什么,或拿你的 PostgreSQL config 做 diff。
# 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>Debian 11 (Bullseye)</os><location>/etc/systemd/postgresql@.service</location><lines>40</lines><md5>5b25f284506ad288820d584bea86fb23</md5><sha256>4c44931bba34e0754b7c0762852a5c1b615a1e307df9c458d231232d55e4c907</sha256></config></prompt>
粘贴到 Claude、ChatGPT 或任何 AI 助手里。
sudo apk add postgresql
sudo apt update && sudo apt install postgresql
sudo yum install postgresql17-server
sudo apt update && sudo apt install postgresql
什么时候该用这个 postgresql@.service?
用来恢复缺失的默认文件、确认发行版本带了什么,或拿你的 PostgreSQL config 做 diff。
怎么恢复 PostgreSQL 的默认配置?
下载文件,把 /etc/systemd/postgresql@.service 里的当前配置备份好,替换掉,然后 reload 或 restart PostgreSQL。
postgresql@.service 适合直接上生产吗?
这是 Debian 11 (Bullseye) 的厂商默认配置,只能当基线。上生产前请检查安全和性能设置。
和其他 OS 版本有什么不同?
默认值会随发行版和版本变化,这份对应 Debian 11 (Bullseye)。
我可以用它来排查 PostgreSQL 吗?
可以。和你的配置做 diff 找出漂移,然后只恢复需要的段落。