- 把常驻命令行程序注册为系统服务.
- 为服务设置启动命令, 工作目录和日志路径.
- 在 Windows 上为 Python, Node.js, Go 等程序补一个稳定的服务壳层.
nssm install MyService
- 执行后会弹出图形界面, 让你填写可执行程序路径, 启动参数和工作目录.
nssm start MyService
nssm stop MyService
nssm remove MyService confirm
- 指向真正要运行的可执行文件.
- 若目标是脚本, 通常这里填解释器路径, 参数里再写脚本路径.
- 很多服务启动失败都和工作目录不正确有关.
- 依赖相对路径, 配置文件或日志目录的程序尤其要注意.
- 填程序启动参数.
- 建议先在普通终端里验证命令可独立运行, 再迁移到服务配置.
- 可把标准输出和标准错误重定向到文件.
- 很适合排查服务无法启动或启动后秒退的问题.
- 先确认程序本身可以稳定前台运行, 再包装为服务.
- 若服务启动失败, 优先检查工作目录, 环境变量和依赖文件路径.
- 对脚本语言程序, 还要确认解释器路径和虚拟环境路径是否固定.
- 如果服务依赖网络, 数据库或其它服务, 也要检查启动顺序和重试策略.
- 多半是目标程序本身异常退出.
- 先看 NSSM 配置的 stdout / stderr 日志.
- 通常是工作目录或环境变量不同.
- 优先比较当前目录,
PATH, 配置文件位置.
- 可以先停服务, 替换程序文件, 再重新启动.
- 若可执行路径或参数结构变化较大, 建议重新检查 NSSM 配置.