<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>PostgreSQL on My_blog</title><link>https://dsduyopg-github-io.pages.dev/tags/postgresql/</link><description>Recent content in PostgreSQL on My_blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 20 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://dsduyopg-github-io.pages.dev/tags/postgresql/index.xml" rel="self" type="application/rss+xml"/><item><title>PostgreSQL 原生 Windows 服务：为什么不用 NSSM 包一层？</title><link>https://dsduyopg-github-io.pages.dev/posts/postgresql-%E5%8E%9F%E7%94%9F-windows-%E6%9C%8D%E5%8A%A1%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E7%94%A8-nssm-%E5%8C%85%E4%B8%80%E5%B1%82/</link><pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate><guid>https://dsduyopg-github-io.pages.dev/posts/postgresql-%E5%8E%9F%E7%94%9F-windows-%E6%9C%8D%E5%8A%A1%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E7%94%A8-nssm-%E5%8C%85%E4%B8%80%E5%B1%82/</guid><description>&lt;details class="toc" open&gt;
&lt;summary accesskey="c" title="(Alt + C)"&gt;
&lt;span class="title"&gt;目录&lt;/span&gt;
&lt;/summary&gt;
&lt;div class="inner"&gt;&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-引子我遇到的问题"&gt;1. 引子：我遇到的问题&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-什么是-windows-原生服务"&gt;2. 什么是 Windows 原生服务&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3-postgresql-安装时就已经是原生服务"&gt;3. PostgreSQL 安装时就已经是原生服务&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#4-nssm-是给谁用的"&gt;4. NSSM 是给谁用的&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#5-对比原生服务-vs-nssm-包一层"&gt;5. 对比：原生服务 vs NSSM 包一层&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#6-用-nssm-包-postgresql-的风险"&gt;6. 用 NSSM 包 PostgreSQL 的风险&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#7-正确的管理姿势"&gt;7. 正确的管理姿势&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#8-什么时候才该用-nssm"&gt;8. 什么时候才该用 NSSM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#9-总结"&gt;9. 总结&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;&lt;/div&gt;
&lt;/details&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;摘要&lt;/strong&gt;：很多人会用 NSSM 把程序包装成 Windows 服务，但 PostgreSQL 天生就是原生 Windows 服务，直接用 &lt;code&gt;Set-Service&lt;/code&gt; / &lt;code&gt;Start-Service&lt;/code&gt; 管理即可，完全不需要也不应该套一层 NSSM。本文讲清楚两者的定位区别、为什么给 PostgreSQL 套 NSSM 是负优化，以及正确的管理姿势。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;核心结论（TL;DR）&lt;/strong&gt;：NSSM 是给&amp;quot;不能自己当服务&amp;quot;的普通程序（脚本、exe）用的；PostgreSQL 安装时就注册成了原生服务，能优雅关库、能被 SCM 直接管理。用 NSSM 包数据库反而会多一层中转、增加非正常退出导致数据恢复的风险。正确做法就是一行 &lt;code&gt;Set-Service&lt;/code&gt; + &lt;code&gt;Start-Service&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id="1-引子我遇到的问题"&gt;1. 引子：我遇到的问题&lt;/h2&gt;
&lt;p&gt;我在博客里写过一篇《Windows 上让 Git 自动同步：NSSM 服务 + 实时监听实战》，里面用 NSSM 把&amp;quot;监听推送 + 定时拉取&amp;quot;的脚本注册成了 Windows 服务，实现了开机自启、崩溃自愈。&lt;/p&gt;</description></item></channel></rss>