Windows上将Eex部署成为服务WinSW和NSSM
使用Windows,经常需要将带界面的Windows 应用、exe可执行程序、bat批处理文件变为Windows服务,以便于后台运行,支持开启重启、进程保护等功能。
有众多的工具支持将exe文件封装为Windows服务,常用的工具包括:
Sc.exe/NSSM/WinSW/Shawl/AlwaysUp/FireDaemon
Sc.exe
https://learn.microsoft.com/zh-cn/windows/win32/services/controlling-a-service-using-sc
Windows系统内置命令,需要熟悉命令行操作,对新手不友好
以前还有SRVANY.exe,微软官方在 Windows 10/11 上已经不再提供支持,因此不推荐。
NSSM
https://github.com/kirillkovalenko/nssm
开源,功能强大,但从2017年以后未再更新维护
Winsw
https://github.com/winsw/winsw
开源,功能强大但配置较为复杂,2023年后未再更新维护
Shawl
https://github.com/mtkennerly/shawl
开源,功能相对于NSSM、Winsw弱一些,目前还在更新维护
AlwaysUp
https://www.coretechnologies.com/products/AlwaysUp/
收费商业软件
FireDaemon
收费商业软件
可以看出,要将exe程序变为Windows服务,免费方案包括Sc.exe,NSSM,Winsw,Shawl,但各有优劣。
下面介绍其中的两款WinSW和NSSM,在Windows上使用这两款式软件可以快将EXE部署成为服务(为什么不直接写服务,我个人喜欢EXE调试测试方便OK之后 再部署成为服务这样方便)
NSSM(C++)
官方 http://www.nssm.cc/ 下载只有一个绿色EXE 使用方法命令行下 NSSM.exe install (对应移除使用 remove
在这里就可以选择你想要的EXE 且起对应的服务的名字(移除的时候需要这个名字)
如果是移除 使用 NSSM.exe Remove 弹出如下界面,填写名字移除
WinSW (C#)
https://github.com/winsw/winsw/releases github上就有
使用windsw 需要有对应的配置文件,如下面的xml文件
1 | <service> |
管理员身份运行CMD并定位到WinSW的安装目录,执行安装命令WinSWr install,此时我们的Windows服务列表中就多了一个叫Minio-Server的服务了
WinSW的各个命令
| 命令 | 描述 |
|---|---|
| install | 安装服务 |
| uninstall | 卸载服务 |
| start | 启动服务 |
| stop | 停止服务 |
| restart | 重启服务 |
| status | 检查服务状态 |
| refresh | 刷新服务属性而不是重新安装 |
| customize | -- |
配合这两图片应该基本使用方式 记录完了
从上面来看我个人喜欢有界面设置的NSSM











