什么时候该用这个 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 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>
粘贴到 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 9 (Stretch) 的厂商默认配置,只能当基线。上生产前请检查安全和性能设置。
和其他 OS 版本有什么不同?
默认值会随发行版和版本变化,这份对应 Debian 9 (Stretch)。
我可以用它来排查 PostgreSQL 吗?
可以。和你的配置做 diff 找出漂移,然后只恢复需要的段落。