PostgreSQL 原生 Windows 服务:为什么不用 NSSM 包一层?

目录 1. 引子:我遇到的问题 2. 什么是 Windows 原生服务 3. PostgreSQL 安装时就已经是原生服务 4. NSSM 是给谁用的 5. 对比:原生服务 vs NSSM 包一层 6. 用 NSSM 包 PostgreSQL 的风险 7. 正确的管理姿势 8. 什么时候才该用 NSSM 9. 总结 摘要:很多人会用 NSSM 把程序包装成 Windows 服务,但 PostgreSQL 天生就是原生 Windows 服务,直接用 Set-Service / Start-Service 管理即可,完全不需要也不应该套一层 NSSM。本文讲清楚两者的定位区别、为什么给 PostgreSQL 套 NSSM 是负优化,以及正确的管理姿势。 核心结论(TL;DR):NSSM 是给"不能自己当服务"的普通程序(脚本、exe)用的;PostgreSQL 安装时就注册成了原生服务,能优雅关库、能被 SCM 直接管理。用 NSSM 包数据库反而会多一层中转、增加非正常退出导致数据恢复的风险。正确做法就是一行 Set-Service + Start-Service。 1. 引子:我遇到的问题 我在博客里写过一篇《Windows 上让 Git 自动同步:NSSM 服务 + 实时监听实战》,里面用 NSSM 把"监听推送 + 定时拉取"的脚本注册成了 Windows 服务,实现了开机自启、崩溃自愈。 ...

August 20, 2026 · 2 分钟 · 276 字
本站访客 · 访问量