Skip to content

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 中管理,实现了所有服务应有的特性。