一些程序(比如 Node.js、Python、Java 或各类脚本)需要长期在后台运行,同时具备开机自启、异常自动恢复等能力。但它们本身并不是 Windows Service,如果自行改造,成本较高;而使用 NSSM、WinSW 这类工具,通常只能解决“能跑起来”,但在运行过程中的管理能力相对有限。
Servy 提供了一种更完整的方案:
不改代码,把任意程序纳入 Windows 服务体系,同时补齐运行过程中的管理能力。
使用方式比较直接。只需要指定程序路径、启动目录和参数,就可以注册为一个服务并启动。对原程序没有侵入,也不限制语言或技术栈,适合多种环境混合使用。
1. 获取方式
https://github.com/aelassas/servy/releases
2. 支持 CLI 与 GUI 两种方式
- 命令行方式:
servy-cli install `
--name="MyService" `
--path="C:\Program Files\nodejs\node.exe" `
--startupDir="C:\MyServer" `
--params="C:\MyServer\server.js"

图形界面方式:

相比传统工具,Servy 多做了一层“运行时管理”。服务的生命周期不再只是简单的 start / stop,还支持在启动前后、停止前后插入钩子逻辑。这在需要初始化环境、执行清理操作或联动其他系统时,会更灵活。
在稳定性方面,Servy 会持续监控目标进程。当程序出现崩溃或无响应时,可以按策略自动重启,从而减少服务中断的风险。同时,它会统一接管日志输出,支持 stdout 和 stderr 重定向,并提供基于时间或大小的滚动机制,方便后续排查问题。
在运行状态上,也提供了一些基础的可观测能力,例如 CPU、内存使用情况,以及实时日志查看。这一点在实际使用中比较关键——很多问题并不是“启动失败”,而是运行过程中逐渐出现异常,能够看到运行状态,会更有助于定位问题。
整体来看,Servy 不只是一个启动工具,更像是一个轻量级的服务管理层。它将原本分散的进程运行、日志处理和异常恢复能力整合在一起,让普通程序可以以接近“服务化”的方式稳定运行。
如果只是做简单的开机启动,它可能略显复杂;但在涉及长期运行、稳定性和可维护性的场景下,这类工具会更有价值。