Windows 将某个应用程序设为服务运行,确保它在后台稳定运行,并且在系统重启后自动启动。
常见的工具包括 Windows 自带的服务管理器、sc
命令、srvany
和第三方工具 nssm
。
1.常用 Windows 服务工具
- Windows 服务管理器:通过图形化界面(
services.msc
)管理服务,适合简单的服务启动、停止和配置。 sc
命令:Windows 提供的命令行工具,可以用于创建和管理服务,但功能较为基础。srvany
:来自 Windows Server Resource Kit 的工具,允许将任意可执行文件作为服务运行,配置较为繁琐。nssm
:推荐的第三方工具,功能强大,易于配置。支持自动重启、服务依赖等高级功能,非常适合将应用程序(如 Nginx、Java JAR)作为服务运行。
2.`nssm` 介绍
nssm
(Non-Sucking Service Manager) 是一个轻量级的命令行工具,专门用于将普通的可执行程序(如 .exe
、.jar
)包装成 Windows 服务。它相较于其他工具(如 sc
、srvany
)的优势在于:
- 易用性:图形化配置及命令行双支持。
- 自动重启:程序崩溃时可以自动重启服务。
- 日志管理:可以将服务的输出重定向到日志文件。
- 依赖管理:支持设置服务依赖,确保服务按顺序启动。
3.下载 `nssm` 并配置环境变量
步骤 1:下载 `nssm`
- 访问 nssm 官方网站。
- 下载适合系统的版本(32 位或 64 位)。
- 解压下载的压缩包,并将
nssm.exe
放到一个合适的位置.
步骤 2:配置 `nssm` 到环境变量
将 nssm.exe
添加到环境变量,命令行直接使用 nssm
命令。
- 右键点击 此电脑,选择 属性。
- 点击 高级系统设置 -> 环境变量。
- 在 系统变量 中找到 Path,点击 编辑。
点击 新建,添加 nssm.exe
所在目录的路径。
- 点击 确定 保存更改。
步骤 3:验证配置
打开命令提示符,输入 nssm
,如果看到 nssm
的帮助信息,则配置成功。
nssm
4.`nssm` 常用命令解释
常用的 nssm
命令:
- 安装服务:将应用程序注册为 Windows 服务。
nssm install <服务名称>
打开一个图形界面,配置服务。
- 启动服务:启动已注册的服务。
nssm start <服务名称>
- 停止服务:停止正在运行的服务。
nssm stop <服务名称>
- 重启服务:重启服务。
nssm restart <服务名称>
- 移除服务:从系统中删除已注册的服务。
nssm remove <服务名称> confirm
- 编辑服务配置:可以通过命令行修改服务的配置。
nssm edit <服务名称>
- 查看服务状态:可以通过命令行查看服务的状态。
nssm status <服务名称>
5.配置 Nginx 为 Windows 服务
假设已经安装了 Nginx,并希望它作为 Windows 服务运行。
步骤 1:安装 Nginx 服务
- 打开命令提示符(管理员权限),输入安装命令来创建 Nginx 服务:
nssm install <服务名>
- 在弹出的
nssm
配置窗口中:- Path:选择
nginx.exe
的路径。 - Startup directory:选择 Nginx 的安装目录,
- Arguments:不需要填写,保持为空。
- Path:选择
- 点击 Install service 以完成安装。
步骤 2:启动 Nginx 服务
服务安装后,使用以下命令启动 Nginx 服务:nssm start <服务名>
可以通过 services.msc
在 Windows 服务管理器中手动启动服务。
步骤 3:查看服务运行状态
通过命令查看:nssm status <服务名>
结果:
也可以直接在任务管理器服务中查看:
6.配置 JAR 为 Windows 服务
有一个 Java 应用程序 xxx.jar
,希望将其作为 Windows 服务运行。
步骤 1:安装 JAR 服务
1. 打开命令提示符(管理员权限),输入安装命令来创建服务:nssm install MyJavaService
- 在弹出的
nssm
配置窗口中:- Path:选择
java.exe
的路径,通常位于jdk安装目录的bin
文件夹中。 - Startup directory:设置为JAR 文件所在的目录,例如
E:\preInspenction
。 - Arguments:输入启动 JAR 的参数,例如:
- Path:选择
-jar preInspenction.jar
- 点击 Install service 以完成安装。
步骤 2:启动 JAR 服务
服务安装后,使用以下命令启动 Java 服务:
nssm start MyJavaService
也可以通过 services.msc
手动启动或停止服务。
步骤 3:JAR 服务的高级配置(可选)
- 资源限制:
Arguments
中加入 JVM 参数,如设置最大堆内存:
-Xmx512m -jar xxx.jar
- 日志管理:通过
nssm
将标准输出和错误输出重定向到日志文件,方便调试和监控应用程序运行情况。
总结
通过 nssm
,可以轻松地将 Nginx 或 Java 应用程序(JAR 文件)配置为 Windows 服务,实现自动启动、后台运行以及崩溃后的自动重启。
参考文章:
《NSSM系列》使用NSSM将程序安装成Windows服务