如何用零代码将应用封装成服务-NSSM
引言
NSSM是什么?借用官方标题"NSSM - the Non-Sucking Service Manager",NSSM - 非吸吮服务经理。实际上NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。
常用命令
1、安装服务
nssm install 服务名称 应用程序路径 参数
Tips:如果nssm跟应用程序在同一目录只需应用名称带上后缀.exe,如果不在同一目录需完整路径,如:"C:\Program Files\app.exe")
2、删除服务
nssm remove 服务名称
Tips:此命令会弹出nssm窗体询问是否确认关闭,如下图
3、删除服务并确定
nssm remove 服务名称 confirm
4、修改服务
nssm edit 服务名称
Tips:此命令会弹出nssm窗体进行操作,如下图
5、启动服务
nssm start 服务名称
6、停止服务
nssm stop 服务名称
7、重启服务
nssm restart 服务名称
小试牛刀
1、在当前目录路径栏输入cmd回车
2、输入命令:nssm install TestService
3、在弹出的窗体中进行可视化配置
实际运用
在实际运用过程中,肯定不是让用户去执行这些命令,所以这里以bat批处理作为演示
1、首先准备好nssm程序和即将要被封装成服务的应用程序,官网下载地址:http://www.nssm.cc/download
2、编写批处理脚本
简单讲解下上面脚本意思:
第一行:批处理语法,大概意思就是关闭回显
第二行:停止服务
第三行:删除服务并确认
第四行:将"webrtc-streamer.exe"这个应用程序封装成名为"TestService"的服务,并给应用程序传递了参数"-H 0.0.0.0:8005"
第五行:启动服务
有同学就要问了,直接安装服务再启动不就完了,两行解决。是的,确实可以,为了安装稳妥起见防止发生冲突,先停服务删除服务再安装再启动。
3、运行批处理,打开Windows服务控制台,即可看到服务已经正常运行了。做成批处理之后还可被其它程序调用执行,或者在安装包里做一些操作,安装完执行该脚本。
值得注意的是nssm自带进程守护功能,被做成服务的应用程序挂掉它会自动再次跑起来,简直是打不死的小强,看下面动态图,可以看出我直接结束掉该进程,直接就会再次起来,PID有变化。
结束语
实际上功能还有很多,比如I/0重定向日志输出等等,具体用法可以参考官网介绍:http://www.nssm.cc/