云计算百科
云计算领域专业知识百科平台

Windows 服务器 jar/Nginx 开机自启实战:NSSM 保姆级教程

文章目录

    • 前言
    • 一、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

  • 官网下载:https://nssm.cc/download
  • 解压后得到 nssm.exe(64 位系统用 win64/nssm.exe)
  • 将 nssm.exe 放到一个固定目录,例如 C:\\tools\\nssm.exe,或者放到项目目录下
  • 建议把 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 服务启动失败

    检查:

  • Path、Startup directory、Arguments 是否填对
  • JDK 或 Nginx 路径是否包含中文或空格,如有空格建议用英文路径或加引号
  • 日志文件目录是否存在
  • 端口是否被占用
  • 6.3 服务启动后自动停止

    可能是 Java 程序启动报错退出,查看 I/O 配置的日志文件定位问题。

    七、总结

    使用 NSSM 把 jar 和 Nginx 注册为 Windows 服务后,可以实现服务器重启自动启动,无需人工干预。相比任务计划程序,NSSM 更加稳定,支持自动恢复和日志重定向,是 Windows Server 部署的常用方案。


    如果文章对你有帮助,欢迎点赞收藏。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Windows 服务器 jar/Nginx 开机自启实战:NSSM 保姆级教程
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!