文章目录
-
- 前言
- 一、NSSM 简介
- 二、下载与安装 NSSM
- 三、实战:jar 包注册为服务
-
- 3.1 安装服务
- 3.2 配置日志
- 3.3 启动并设置开机自启
- 四、实战:Nginx 注册为服务
-
- 4.1 安装服务
- 4.2 配置日志
- 4.3 启动并设置开机自启
- 五、常用 NSSM 命令
- 六、常见问题排查
-
- 6.1 sc config 报错
- 6.2 服务启动失败
- 6.3 服务启动后自动停止
- 七、总结
前言
在 Windows Server 上部署 Spring Boot jar 包和 Nginx 后,每次服务器重启都需要手动登录、执行启动脚本,非常麻烦。本文介绍如何使用 NSSM(Non-Sucking Service Manager) 将 jar 和 Nginx 注册为 Windows 服务,实现真正的开机自动启动,并补充常用命令与常见问题排查。
一、NSSM 简介
NSSM 是一款轻量级的 Windows 服务封装工具,它可以把任意可执行程序(exe、bat、jar 对应的 java.exe 等)注册为系统服务,支持:
- 开机自启
- 崩溃自动重启
- 日志重定向
- 无需用户登录即可运行
二、下载与安装 NSSM
建议把 NSSM 路径加到系统环境变量,这样任意目录都能直接执行 nssm 命令。
三、实战:jar 包注册为服务
假设你的 jar 包路径为 C:\\app\\backend\\app-server.jar,JDK 路径为 C:\\Program Files\\Java\\jdk-17\\bin\\java.exe。
3.1 安装服务
以管理员身份打开 CMD:
cd /d C:\\app\\backend
nssm install app-server-service
会弹出 NSSM 配置窗口,填写:
| Path | C:\\Program Files\\Java\\jdk-17\\bin\\java.exe |
| Startup directory | C:\\app\\backend |
| Arguments | -Dfile.encoding=utf-8 -jar app-server.jar –spring.profiles.active=prod |
点击 Install service。
3.2 配置日志
切换到 I/O 标签页:
- Output (stdout): C:\\app\\backend\\logs\\app-server-out.log
- Error (stderr): C:\\app\\backend\\logs\\app-server-err.log
如果 logs 目录不存在,先手动创建。
3.3 启动并设置开机自启
nssm start app-server-service
nssm set app-server-service Start SERVICE_AUTO_START
或者使用 sc 命令:
sc config app-server-service start= auto
注意:start= auto 等号后必须有空格。
四、实战:Nginx 注册为服务
Nginx Windows 版不能原生作为服务运行,用 NSSM 封装是最稳的方式。
假设 Nginx 路径为 C:\\nginx\\nginx-1.28.0\\nginx.exe。
4.1 安装服务
cd /d C:\\tools
nssm install nginx
配置:
| Path | C:\\nginx\\nginx-1.28.0\\nginx.exe |
| Startup directory | C:\\nginx\\nginx-1.28.0 |
| Arguments | 留空 |
4.2 配置日志
在 I/O 标签页:
- Output (stdout): C:\\nginx\\nginx-1.28.0\\logs\\nssm-out.log
- Error (stderr): C:\\nginx\\nginx-1.28.0\\logs\\nssm-err.log
4.3 启动并设置开机自启
nssm start nginx
nssm set nginx Start SERVICE_AUTO_START
五、常用 NSSM 命令
nssm start <服务名> # 启动服务
nssm stop <服务名> # 停止服务
nssm restart <服务名> # 重启服务
nssm status <服务名> # 查看状态
nssm remove <服务名> # 删除服务(会弹窗确认)
nssm remove <服务名> confirm # 删除服务(静默确认)
nssm edit <服务名> # 编辑服务配置
六、常见问题排查
6.1 sc config 报错
sc config 常见报错原因:
- 没有以管理员身份运行 CMD
- start= auto 等号后没加空格
- 服务名拼写错误
推荐直接用 NSSM 命令:
nssm set <服务名> Start SERVICE_AUTO_START
6.2 服务启动失败
检查:
6.3 服务启动后自动停止
可能是 Java 程序启动报错退出,查看 I/O 配置的日志文件定位问题。
七、总结
使用 NSSM 把 jar 和 Nginx 注册为 Windows 服务后,可以实现服务器重启自动启动,无需人工干预。相比任务计划程序,NSSM 更加稳定,支持自动恢复和日志重定向,是 Windows Server 部署的常用方案。
如果文章对你有帮助,欢迎点赞收藏。
网硕互联帮助中心








评论前必须登录!
注册