Windows使用NSSM将exe封装为服务
介绍
NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。它的特点如下:
- 支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
- 安装简单,修改方便
- 可以重定向输出(并且支持Rotation)
- 可以自动守护封装了的服务,程序挂掉了后可以自动重启
- 可以自定义环境变量
官网
使用
- 下载最新版本nssm,也可以下载最新release版本;
- 根据自己的平台,将32/64位nssm.exe文件解压至任意文件夹。
- cmd定位至nssm.exe所在目录。
- 输入
nssm install {服务名称}
,即注册服务的名称。注册服务弹出如下NSSM界面 - Application标签设置:
- Application Path: 选择系统安装的exe。
- Startup directory: 选择exe项目的根目录。
- Arguments: 输入启动参数
6.Details可设置服务的显示名称和描述信息,以及服务启动类型(自动,自动延迟启动,手动,禁用)
7.Log on可设置登录身份
8.Exit actions当服务失败时可自动重新启动服务
9.I/O将命令行的所有文本输出记录到文件中
10.File rotation可设置记录文件的大小,避免同一个日志文件过大
11.Environment设置此服务需要的环境变量
点击Install service即完成服务安装。
上述为GUI服务安装,如果要自动化安装,可以直接带上程序路径:
nssm install <servicename> <program> [<arguments>] |
在系统的服务中可找到刚刚安装的服务rpa_server。 服务名即为rpa_server,显示名称未设置默认显示为服务名,描述为RPA Console,启动类型为自动等。。。
NSSM本身win7及以上的系统基本都是支持的,如果安装失败,请首先检查是否装了某国产管家或国产杀毒软件。
安装完成后,服务并未有启动(如上图服务状态为:已停止),需要通过下面的服务管理的命令启动服务。
服务管理
服务管理主要有启动、停止和重启,其命令如下:
- 启动服务:
nssm start <servicename>
-
停止服务:
nssm stop <servicename>
- 重启服务:
nssm restart <servicename>
当然,也可以使用系统自带的服务管理器操作和使用系统的命令(如上图点击启动等方式)。
修改参数
NSSM安装的服务修改起来非常方便,命令如下:
nssm edit <servicename> |
会自动启动操作界面,直接更改即可。
服务删除
服务删除可以使用如下命令之一:
-
nssm remove <servicename>
-
nssm remove <servicename> confirm
功能没有大的区别,后面的命令是自动确认的,没有交互界面。
命令行
服务自动化需要使用更多的命令行,具体参看官方文档: https://nssm.cc/commands