NSSM 是一个服务封装程序,它可以将普通 exe
程序或 Nodejs 项目封装成服务,像 windows 服务一样运行。同类型的工具还有微软自己的 srvany
,不过 nssm 更加简单易用,并且功能强大。它的特点如下:
- 支持普通 exe 程序(控制台程序或者带界面的 Windows 程序都可以)
- 安装简单,修改方便
- 可以重定向输出(并且支持 Rotation)
- 可以自动守护封装了的服务,程序挂掉了后可以自动重启
- 可以自定义环境变量
官网
服务安装:
服务安装可以使用如下命令: nssm install <servicename>
直接在 nssm.exe
所在目录运行命令行,输入 nssw install + servicename
例如将内网穿透软件 frp 设置为 windows 服务(在 windows 平台使用 frp 最大的问题是自动启动经常失效,导致网络连不通。将程序做到服务中,每次开机自启动,再也不担心启动不正常的问题)
nssm install frp
之后会弹出设置界面,需要做的就是
- 设置可执行文件
- 增加执行参数
- 设置服务名称
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命令
图形界面操作很简单,基本看了就会,在此不再赘述,下面主要介绍命令行用法
-
安装服务
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
-
启动服务
nssm start <servicename>
-
停止服务
nssm stop <servicename>
-
重启服务
nssm restart <servicename>
-
查看服务状态
nssm status <servicename>
-
手动轮转日志文件
nssm rotate <servicename>
-
删除服务
nssm remove <servicename> [confirm]
加confirm后不会弹确认窗口
-
获取某项配置信息
nssm get <servicename> <parameter> [subparameter]
-
单独设置某项配置
nssm set <servicename> <parameter> [subparameter] value
-
重置某项配置
nssm reset <servicename> <parameter> [subparameter]
-
暂停/继续服务
nssm pause <servicename>
nssm continue <servicename>
参考资料:
使用NSSM将exe封装为服务
nssm 将应用写入 Windows 服务
via。https://blog.pandll.com/article/4689/