NSSM
NSSM 简介
NSSM 的全称是 the Non-Sucking Service Manager(非弱智服务管理器)。它是一个自由开源的 Windows 服务助手程序。
顾名思义,它的诞生就是为了解决 Windows 自带的服务管理器(sc.exe)在处理某些应用程序时“很弱智”、“很难用”的问题。它用一种更加友好和强大的方式来将任何普通的可执行程序(如 .exe 或 .bat 脚本)安装为 Windows 服务。
NSSM 作用 它的核心作用非常明确:将不是专门设计为服务的普通应用程序,变成了一个可靠的 Windows 服务。
Windows 服务优势 将程序作为服务运行主要有以下几个优势:
- 开机自动启动:服务可以在 Windows 启动时自动运行,无需用户登录。
- 在后台运行:服务在后台静默运行,没有用户界面,不会打扰用户。
- 生命周期管理:服务可以被系统统一管理,可以通过“服务”控制台(services.msc)方便地启动、停止、重启、暂停。
- 高可靠性:NSSM 会监视它管理的服务,如果服务意外崩溃,NSSM 可以自动将其重启,确保应用持续可用。
NSSM 使用
NSSM 的使用非常简单,主要有两种方式:
使用方式
图形化界面
- 下载并解压 NSSM。
- 打开命令提示符(cmd),导航到 NSSM 目录,运行 nssm.exe install <服务名>。
- 如果是修改某个已安装的服务的配置参数, 运行 nssm.exe edit <服务名>。
- 这会弹出一个窗口,让你浏览选择要作为服务运行的可执行文件(例如 node.exe、python.exe、nginx.exe)。
- 你可以在各个选项卡中设置参数、启动目录、环境变量、重启策略等。
- 点击“Install service”即可完成安装。
命令行
- 安装服务:nssm install <服务名> <可执行文件路径> [参数]
- 启动服务:nssm start <服务名>
- 停止服务:nssm stop <服务名>
- 重启服务:nssm restart <服务名>
- 删除服务:nssm remove <服务名>
典型使用场景
假设你有一个用 Node.js 写的 Web 应用 app.js,你希望它在服务器上一直运行,并且开机自动启动。
没有 NSSM 时:你可能需要一个额外的进程管理工具(如 PM2)来保持它运行,并且还要配置 PM2 本身开机启动,步骤繁琐。
使用 NSSM 后:
- 运行:nssm install MyNodeApp C:\nodejs\node.exe
- 在弹出的界面中,在 “Arguments” 栏填上:C:\myapp\app.js
- 设置好重启策略。
- 点击安装。
现在,“MyNodeApp” 就会作为一个标准的 Windows 服务存在,可以在 services.msc 中管理,实现了所有服务应有的特性。
