Loading

如何用零代码将应用封装成服务-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窗体询问是否确认关闭,如下图

image-20220326195753005

3、删除服务并确定
nssm remove 服务名称 confirm
4、修改服务
nssm edit 服务名称 

Tips:此命令会弹出nssm窗体进行操作,如下图

image-20220326210357215

5、启动服务
nssm start 服务名称
6、停止服务
nssm stop 服务名称
7、重启服务
nssm restart 服务名称

小试牛刀

1、在当前目录路径栏输入cmd回车

2、输入命令:nssm install TestService

3、在弹出的窗体中进行可视化配置

image-20220326201732360

实际运用

在实际运用过程中,肯定不是让用户去执行这些命令,所以这里以bat批处理作为演示

1、首先准备好nssm程序和即将要被封装成服务的应用程序,官网下载地址:http://www.nssm.cc/download

2、编写批处理脚本

image-20220326205542739

简单讲解下上面脚本意思:

第一行:批处理语法,大概意思就是关闭回显

第二行:停止服务

第三行:删除服务并确认

第四行:将"webrtc-streamer.exe"这个应用程序封装成名为"TestService"的服务,并给应用程序传递了参数"-H 0.0.0.0:8005"

第五行:启动服务

有同学就要问了,直接安装服务再启动不就完了,两行解决。是的,确实可以,为了安装稳妥起见防止发生冲突,先停服务删除服务再安装再启动。

3、运行批处理,打开Windows服务控制台,即可看到服务已经正常运行了。做成批处理之后还可被其它程序调用执行,或者在安装包里做一些操作,安装完执行该脚本。

image-20220326210432856

值得注意的是nssm自带进程守护功能被做成服务的应用程序挂掉它会自动再次跑起来,简直是打不死的小强,看下面动态图,可以看出我直接结束掉该进程,直接就会再次起来,PID有变化。

1

结束语

实际上功能还有很多,比如I/0重定向日志输出等等,具体用法可以参考官网介绍:http://www.nssm.cc/

posted @ 2022-03-26 21:32  傲慢与偏见luc  阅读(338)  评论(4编辑  收藏  举报