运维:利用nssm实现Windows服务管理
https://cloud.tencent.com/developer/article/2388366
nssm是一款强大的小型工具,它允许用户将任何可执行文件(包括批处理脚本、exe程序或dll动态链接库)注册为Windows系统服务,并对其进行便捷的管理和控制。本文将介绍如何安装和使用nssm来创建及管理自定义服务。
一、下载与安装nssm
首先访问nssm的官网(https://nssm.cc/)下载最新版本的nssm.exe文件,无需安装,只需将其解压到合适的目录,如`D:\Program Files\nssm`。

下载目录:http://www.nssm.cc/download

二、创建新的服务
打开命令提示符(以管理员身份运行),然后切换至nssm所在的目录:
本次我们要将一个名为`mysql服务监控,异常状态定时自动重启.bat`的批处理文件注册为名为`MySQLTaskService`的服务,可以输入以下命令:
当nssm界面弹出时,可以进行服务的各项配置,如显示名称、描述、启动目录等。
应用程序选项卡
特别注意在“应用程序”选项卡中设置正确的应用程序路径,在“Startup directory”中设置启动目录,确保能正确解析批处理文件中的相对路径。

参数说明
Details选项卡
Details选项卡中可以设置启动参数,以及进程优先级和退出代码行为等高级选项。

参数设置命令:
配置完成后,点击“Install Service”按钮完成服务的注册。
三、管理
- 启动服务:通过services.msc打开服务管理器,找到刚刚创建的服务并启动;或者在命令行中使用net start MySQLTaskService命令启动。
- 停止服务:在服务管理器中选择停止,或命令行中输入net stop MySQLTaskService。
- 删除服务:若需移除已创建的服务,可以在nssm命令行中输入:
四、监控与日志
nssm还提供了标准输出和错误输出重定向功能,方便用户收集服务运行过程中的信息。在nssm配置界面的“Logging”选项卡中,可以设置输出日志文件的位置,以便于后期分析和排查问题。

五、nssm常用的命令
命令 |
功能描述 |
---|---|
nssm install <服务名> |
安装新的服务,指定服务名称和可执行文件路径。例如:nssm install MyService "C:\path\to\application.exe" |
nssm remove <服务名> confirm |
删除已安装的服务,确认后执行。例如:nssm remove MyService confirm |
nssm start <服务名> |
启动指定的服务。例如:nssm start MyService |
nssm stop <服务名> |
停止指定的服务。例如:nssm stop MyService |
nssm restart <服务名> |
重启指定的服务。例如:nssm restart MyService |
nssm status <服务名> |
检查服务的状态。例如:nssm status MyService |
nssm edit <服务名> |
打开图形界面编辑器以修改服务的配置参数,包括启动程序、环境变量、日志选项等。 |
总结来说,nssm作为一个简单而实用的工具,极大地简化了Windows服务的创建和管理过程。无论是批处理脚本还是其他类型的可执行文件,只要借助nssm,都能够作为后台服务稳定、可靠地运行。