NSSM 介绍
NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。它的特点如下:
支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
安装简单,修改方便
可以重定向输出(并且支持Rotation)
可以自动守护封装了的服务,程序挂掉了后可以自动重启
可以自定义环境变量
这里面的每一个功能都非常实用,使用NSSM来封装服务可以大大简化我们的开发流程了。
开发的时候是一个普通程序,降低了开发难度,调试起来非常方便
安装简单,并且可以随时修改服务属性,更新也更加方便
可以利用控制台输出直接实现一个简单的日志系统
不用考虑再加一个服务实现服务守护功能
安装与发布
1、下载nssm
下载地址:http://www.nssm.cc/download
将下载的压缩包解压
2、将.net core 项目发布
方式一:直接发布
1、借助VS2022发布WebApi,参考下述界面设置发布即可。(对于asp.net core 程序,官方给出了两种部署模式----依赖部署及独立部署,官方默认的模式为依赖部署。)
2.使用nssm按照asp.net core 为windows服务
下载NSSM,使用命令窗口至NSSM目录中找到nssm.exe所在的目录,然后运行nssm install,然后会弹框,选择相应的文件和文件夹。
Path:独立部署模式发布的asp.net core webapi 的程序exe;
Startup directory:程序所在的目录,就是最后程序exe所在的目录;
Arguments:程序exe的名称,一般是项目名加上.exe;
Service name:在此写上服务的名称即可。
然后点击Install service按钮就完成了部署。
最后到Windows服务管理界面找到安装的服务名称,右键启动即可,或者直接运行nssm start 服务名称,也可以运行net start 服务名称。这样就可以非常简单的把.Net Core托管至Window服务中。方便管理、启动、停止等等。
命令窗口至NSSM目录中找到nssm.exe所在的目录,然后运行nssm,会看到NSSM的更多操作
方式二:使用.bat
1、创建.net core 项目bat启动脚本命令文件,命名为Start.bat,脚本代码如下
cd %~dp0
dotnet WebAPICore.dll
pause
将bat文件放入.net core 发布包的文件夹下
注:WebAPICore.dll为发布的.net core的项目名称;根据实际项目名称来写
2、使用nssm安装服务
1)以管理员身份运行cmd,通过cd命令进入nssm.exe文件夹
2)执行命令 nssm insatll WebApiService(注:WebApiService为服务名称,可根据实际情况命名服务名称)
Path 中输入.net core webapi Start.bat文件路径
Starup directory 选择.net core webapi发布文件路径
然后点击Install service
然后在服务中会看到安装的.net core 项目的服务
NSSM常用命令
安装服务:nssm install 服务名
删除服务:nssm remove 服务名
删除服务确定:nssm remove 服务名 confirm
修改服务(显示界面修改):nssm edit 服务名
启动服务:nssm start 服务名
停止服务:nssm stop 服务名
重启服务:nssm restart 服务名
更多命令请参考官网说明:https://nssm.cc/commands
文章内容转载,参考下述链接: