使用NSSM将.exe程序安装成windows服务
1、下载NSSM:NSSM - the Non-Sucking Service Manager

2、cmd方式安装服务
将下载的压缩包解压,找到nssm.exe,以管理员身份打开cmd,在cmd中定位到nssm.exe所在路径,执行nssm install 服务名:

按下enter键会自动弹出nssm的窗体:

在Application-Application Path中选择你的可执行文件.exe,确认后会自动填入Startup directory,Service name处可以修改服务名
上方选项卡的Details中可以填入显示名称、描述、启动方式,一般默认是自动启动
填写完成后点击右下角的Install service即可。
3、批处理文件方式安装服务
将nssm.exe复制到要打包的程序文件夹中,再在同目录下新建三个txt文本,分别对应安装服务、关闭服务、卸载服务,将后缀名改为bat
- 右键编辑,安装服务:
REM 创建服务
echo off
echo 即将开始采用nssm安装应用程序为windows服务,请确认以系统管理员身份运行
set servicename=自定义服务名称
REM %~dp0 为BAT脚本取当前系统目录命令,API_HOST.EXE为需要包装为服务的应用程序
set app_path="%~dp0程序.exe"
set nssm_path="%~dp0nssm.exe"
REM 将NSSM复制至系统盘目录,或者 添加 windows 环境变量亦可达到目的
set targetFolder="C:\windows\System32\nssm.exe"
REM 检查NSSM.exe文件是否存在
echo 检查当前目录nssm.exe文件是否存在
if not exist %nssm_path% (
echo %nssm_path% 不存在,请确认
pause
goto exitCode
)
)
echo %nssm_path% 存在,即将检查文件并复制
REM 复制nssm
if not exist %targetFolder% (
copy /y %nssm_path% %targetFolder%
echo 复制nssm至windows系统目录完成
)
echo 即将创建服务 %servicename%
echo **************************************** REM 判断service 是否存在,若存在,先停止,至删除
echo 检查服务是否存在,存在则停止服务后删除,再安装
sc query|find /i "%servicename%" >nul 2>nul
if not errorlevel 1 (
echo 服务已存在,停止运行服务
echo stop %servicename%
REM NSSM停止服务命令:nssm stop <ServiceName>
nssm stop %servicename%
echo 开始移除服务 %servicename%
echo remove service %servicename%
REM NSSM删除服务命令:nssm remove <ServiceName> confirm
REM 移除命令最后的 confirm 即表示无限弹窗确认,直接移除。
nssm remove %servicename% confirm
echo 移除服务完成
) echo *********************************
echo 开始创建服务 %servicename%
REM NSSM命令:nssm install <服务名> <服务需要执行的程序>
nssm install %servicename% %app_path%
echo 开始设置服务信息
echo set service property
echo 设置服务显示名称
REM nssm set <ServiceName> DisplayName <ServiceName>
nssm set %servicename% DisplayName %servicename%
echo 设置服务描述
REM nssm set <ServiceName> Description <ServiceName>
nssm set %servicename% Description xxx控制系统
echo 设置服务启动方式为:自动
nssm set %servicename% Start SERVICE_AUTO_START
echo *********************************
echo 启动服务 %servicename%
echo start service %servicename%
nssm start %servicename%
echo 服务创建并启动完成 :exitCode
pause
set servicename=自定义服务名称,这里的自定义服务名称改为你想要的名称
set app_path="%~dp0程序.exe",这里的程序.exe改为你的可执行文件名
%~dp0代表的是当前目录
- 右键编辑,关闭服务
@echo off
@title 关闭服务
echo= 开始关闭服务!
@echo off
@sc stop 自定义服务名称
@echo off
echo= 关闭服务结束!
@pause
- 右键编辑,卸载服务
@echo off
@title 删除服务
echo= 开始删除服务!
@echo off
nssm stop 自定义服务名称
nssm remove 自定义服务名称 confirm
@echo off
echo= 删除完成!
@pause
- 上述的bat文件都需要用管理员身份运行,可以为bat文件创建快捷方式,在快捷方式上右键属性-快捷方式-高级-勾选用管理员身份运行

- 双击快捷方式执行即可。
4、参考链接:
使用NSSM部署.net API自动化BAT脚本 - 知乎 (zhihu.com)
使用NSSM安装.exe文件成Windows服务(.bat文件操作) - 汪小让 - 博客园 (cnblogs.com)
使用NSSM将.exe程序安装成windows服务的更多相关文章
- 使用srvany.exe把程序安装成windows服务的方法
http://mazhihui.iteye.com/blog/1294431 srvany.exe是什么? srvany.exe是Microsoft Windows Resource Kits工具集的 ...
- 使用srvany.exe将程序安装成windows服务的详细教程
srvany.exe介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说srva ...
- 使用srvany.exe把程序安装成windows服务
srvany.exe介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说srva ...
- 使用NSSM把任意exe程序注册成Windows服务
1.登录NSSM官网下载最新版本: http://www.nssm.cc/download 2.解压之后可以看到win32和win64位的nssm.exe,根据自己的电脑选择使用 3.拷贝一份nssm ...
- 将bat文件或exe程序注册成windows服务
命令行使用sc命令.关于sc命令的详解,请自行查看帮助(sc /?),在此只简单提及如何加入系统服务功能.加入服务:sc create ServiceName binPath= 路径 start= a ...
- 使用instsrv.exe+srvany.exe将应用程序安装为windows服务[转]
转自:http://qingmu.blog.51cto.com/4571483/1248649 一.什么是instsrv.exe和srvany.exe instsrv.exe.exe和srvany ...
- Nginx 安装成 Windows 服务
Nginx 安装成Windows 服务方法,具体方法如下 1. 下载nginx windows版本 http://www.nginx.org 2. 下载微软的2个工具: instsrv.exe.srv ...
- Java的jar文件安装成windows 服务
Java的jar文件安装成windows 服务: 1.下载:nssm,复制到jar文件目录下 2. jar文件目录下创建bat文件[run.bat],内容为[java -jar 文件名.jar] 3. ...
- ELK安装成windows服务
一.Elasticsearch安装成windows服务 我的es所在路径为:D:\ELK5.5.0\elasticsearch-5.5.0 Java 安装目录为:C:\Program Files\Ja ...
- 【先定一个小目标】Redis 安装成windows服务-开机自启
1.第一步安装成windows服务的,开机自启动 redis-server --service-install redis.windows.conf 2.启动\关闭 redis-server --se ...
随机推荐
- KingbaseES V8R3 集群运维案例 --操作系统‘soft lockup’引起的failover切换
案例说明: 在国产中标麒麟系统生产环境中,监控发现KingbaseES V8R3集群发生了failover的主备切换,客户需要给出分析报告,说明此次集群发生failover切换的原因,本次文档通过分析 ...
- Java开发岗面试题小结
8种基本数据类型 类型名称 关键字 占用内存 取值范围 字节型 byte 1 字节 -128~127 短整型 short 2 字节 -32768~32767 整型 int 4 字节 -21474836 ...
- Codeforces Round #751 (Div. 1)
CF1601A Array Elimination 洛谷传送门 CF1601A 分析 可以发现每一位可以拆开,也就是每一位的一的个数一定是 \(k\) 的倍数, 直接求 \(\gcd\) 出来,它的约 ...
- 战“码”先锋直播预告丨如何成为一名优秀的OpenHamrony贡献者?
OpenAtom OpenHarmony(以下简称"OpenHarmony")工作委员会首度发起「OpenHarmony开源贡献者计划」,旨在鼓励开发者参与OpenHarmony开 ...
- 【直播回顾】OpenHarmony知识赋能五期第五课——多媒体子系统之视频解读
5月19日晚上19点,知识赋能第五期第五节课<OpenHarmony标准系统多媒体子系统之视频解读>,在OpenHarmony开发者成长计划社群内成功举行. 本期课程,由深开鸿资深技术专家 ...
- 如何在OpenHarmony上使用SeetaFace2人脸识别库?
简介 相信大部分同学们都已了解或接触过OpenAtom OpenHarmony(以下简称"OpenHarmony")了,但你一定没在OpenHarmony上实现过人脸识别功能,跟着 ...
- 前端vue监听activeMQ消息后端推送消息--实战
需求 : 工厂员工完成某道工序后,需要将消息推送给 检查人员 也可以使用 WebSockets ,前端更容易实现 思路: 使用activeMQ推送消息,前端实时接收消息 实现 : 1.基于spring ...
- 在 macOS Big Sur 上安装 MySQL 8.x Compressed TAR Archive
因个人能力有限,文章难免存在错误,望斧正,感谢. 版本: macOS 11.6 Intel版本 MySQL 8.0.26 Compressed TAR Archive 一.准备所需文件 前往 MySQ ...
- 报表工具能用来做 DashBoard 和大屏吗?
我们首先来理一下 DashBoard.大屏和报表的关系. DashBoard 是指企业仪表盘,也叫管理者驾驶舱,通常被简称为 DBD.从表现形式上来看,DBD 由多个决策者关注的各类指标数据拼接而成, ...
- 学Windows批处理第一天:使用批处理命令生成一个文件并写入内容
脚本功能:1.生成一个文件,文件名格式为:yyyymmddhhmmss 2.文件中写入一段文本 操作步骤:1.新建一个文本文档(txt格式) 2.修改文件名为任意名称(我的叫create_file), ...