什么是 NSSM?
NSSM(Non-Sucking Service Manager)是一个轻量级的 Windows 服务管理器,它可以将普通的可执行程序(如 .exe 或 .bat 文件)安装为 Windows 服务。与 Windows 自带的 sc.exe 相比,NSSM 提供了更友好、更强大的功能。
NSSM 的主要特点
简单易用:提供直观的命令行和 GUI 界面
稳定性强:能更好地管理服务的生命周期
日志记录:内置日志记录功能,便于故障排查
环境变量支持:可以自定义服务运行的环境
自动重启:可以配置服务崩溃后自动重启
安装 NSSM
方法一:直接下载二进制文件
访问 NSSM 的官方网站 https://nssm.cc/
下载最新版本的 NSSM(32位或64位根据你的系统选择)
解压下载的压缩包到你喜欢的目录,例如
C:\Tools\nssm
方法二:使用 Chocolatey 安装(推荐)
如果你已经安装了 Chocolatey 包管理器,只需运行以下命令:
Powershellchoco install nssm
使用 NSSM
基本命令
NSSM 既可以通过命令行使用,也可以通过 GUI 界面操作。以下是常用命令:
安装服务
Cmdnssm install <服务名称>
这会打开一个 GUI 界面,让你配置服务。
启动服务
Cmdnssm start <服务名称>
停止服务
Cmdnssm stop <服务名称>
重启服务
Cmdnssm restart <服务名称>
删除服务
Cmdnssm remove <服务名称>
实际使用示例
假设我们有一个 Node.js 应用,想把它作为 Windows 服务运行:
首先安装服务:
Cmdnssm install MyNodeApp
在弹出的 GUI 界面中配置:
Path: 选择 node.exe 的路径(如
C:\Program Files\nodejs\node.exe)Startup directory: 选择你的 Node.js 应用目录
Arguments: 输入你的应用入口文件(如
app.js)
点击 "Install service" 按钮完成安装
启动服务:
Cmdnssm start MyNodeApp
高级配置
通过命令行可以直接配置服务参数,无需使用 GUI:
Cmdnssm set MyNodeApp AppDirectory "C:\path\to\your\app" nssm set MyNodeApp AppParameters "app.js" nssm set MyNodeApp AppStdout "C:\path\to\logs\stdout.log" nssm set MyNodeApp AppStderr "C:\path\to\logs\stderr.log"
查看服务状态
Cmdnssm status MyNodeApp
常见问题解决
服务启动失败:
检查应用程序路径是否正确
检查是否有足够的权限
查看日志文件(如果配置了日志输出)
服务无法删除:
确保服务已停止
以管理员身份运行命令提示符
环境变量问题:
在 NSSM GUI 的 "Environment" 标签页中添加所需的环境变量
总结
NSSM 是一个强大且易用的 Windows 服务管理工具,特别适合将各种脚本和应用程序作为服务运行。相比 Windows 自带的 sc.exe,它提供了更友好的界面和更稳定的服务管理能力。无论是开发者还是系统管理员,掌握 NSSM 都能让你的 Windows 服务管理工作更加高效。