NSSM 是一个服务封装程序,它可以将普通 exe 程序或 Nodejs 项目封装成服务,像 windows 服务一样运行。同类型的工具还有微软自己的 srvany,不过 nssm 更加简单易用,并且功能强大。它的特点如下:

  • 支持普通 exe 程序(控制台程序或者带界面的 Windows 程序都可以)
  • 安装简单,修改方便
  • 可以重定向输出(并且支持 Rotation)
  • 可以自动守护封装了的服务,程序挂掉了后可以自动重启
  • 可以自定义环境变量

官网

https://nssm.cc/

服务安装:

服务安装可以使用如下命令: nssm install <servicename>

直接在 nssm.exe 所在目录运行命令行,输入 nssw install + servicename

例如将内网穿透软件 frp 设置为 windows 服务(在 windows 平台使用 frp 最大的问题是自动启动经常失效,导致网络连不通。将程序做到服务中,每次开机自启动,再也不担心启动不正常的问题)
nssm install frp
之后会弹出设置界面,需要做的就是
  • 设置可执行文件
  • 增加执行参数
  • 设置服务名称

nssm将exe文件设置为windows服务

via。https://hao.su/2229/


NSSM介绍

NSSM(the Non-Sucking Service Manager)是Windows环境下一款免安装的服务管理软件,它可以将应用封装成服务,使之像windows服务可以设置自动启动等。并且可以监控程序运行状态,程序异常中断后自动启动,实现守护进程的功能。不仅支持图形界面操作,也完全支持命令行设置。

NSSM用法

打开下载页面,下载最新版(当前为2.24),下载完成后解压到某个路径,然后将win64/win32文件夹路径(D:\download\nssm-2.24\nssm-2.24\win64)添加到环境变量Path即可。

NSSM命令

图形界面操作很简单,基本看了就会,在此不再赘述,下面主要介绍命令行用法

  1. 安装服务
    nssm install <servicename> <app> [<args>...]

    示例:

nssm install celery-demo-worker "c:\Program Files\Python35\Scripts\celery.exe"
nssm set celery-demo-worker AppDirectory d:\celery-demo
nssm set celery-demo-worker AppParameters -A run worker --loglevel=debug -c 1
  1. 启动服务
    nssm start <servicename>

  2. 停止服务
    nssm stop <servicename>

  3. 重启服务
    nssm restart <servicename>

  4. 查看服务状态
    nssm status <servicename>

  5. 手动轮转日志文件
    nssm rotate <servicename>

  6. 删除服务
    nssm remove <servicename> [confirm]

    加confirm后不会弹确认窗口

  7. 获取某项配置信息
    nssm get <servicename> <parameter> [subparameter]

  8. 单独设置某项配置
    nssm set <servicename> <parameter> [subparameter] value

  9. 重置某项配置
    nssm reset <servicename> <parameter> [subparameter]

  10. 暂停/继续服务
    nssm pause <servicename>
    nssm continue <servicename>

参考资料:
使用NSSM将exe封装为服务
nssm 将应用写入 Windows 服务

via。https://blog.pandll.com/article/4689/

 

最后修改:2020 年 02 月 15 日 02 : 49 PM