目录
(2)给 kapacit 服务增加子项 Parameters
(3)给子项 Parameters 增加两个字符串类型的参数 AppDirectory 和 Application,并指定参数值
因为最近时长需要在Windows上使用bat脚本启动服务如influxdb、kapacitor等,想把命令行窗口隐藏起来,做成系统服务管理也方便。
下面介绍3中方法来注册系统服务!!!
使用 Nssm 工具注册系统服务是最为方便、有效的!!!
可以查看我的这篇文章:Windows 和 Linux 下后台运行 Jar包_Stars.Sky的博客-CSDN博客_cmd后台启动jar包
这里着重介绍另外两个方法。
SC 是用来与服务控制管理器和服务进行通信的命令行程序。也可以将.bat 脚本或 .exe 程序注册成windos服务。
这里需要用管理员角色启动doc命令窗口。
- # 创建服务:
- sc create ServiceName binpath= 脚本路径.bat start= auto type= own displayname= 服务名
- (注意“=”后有个空格)
-
- # 删除服务:
- sc delete 服务名


- sc create influx binpath= D:\test\dbs\influxdb-1.8.2-1\influx_start.bat type= own start= auto displayname= influxdb01
-
- # influx_start.bat 内容:
- start cmd /c "cd /d D:\test\dbs\influxdb-1.8.2-1 && influxd.exe -config influxdb.conf"

看到创建,在任务管理器打开服务列表,也出现了influx 服务:

但是右击开始运行服务,报错:

也确保了脚本单独执行是可以成功的,但是在这里不成功(可能sc命令大概率是不支持.bat 脚本注册服务的,只支持 .exe程序),便使用接下来的第三种方法了。
instsrv.exe和srvany.exe是Microsoft Windows Resource Kits工具集中的两个实用工具,这两个工具配合使用可以将任何的exe应用程序作为window服务运行。
srany.exe是注册程序的服务外壳,可以通过它让应用程序以system账号启动,可以使应用程序作为windows的服务随机器启动而自动启动,从而隐藏不必要的窗口。
下载链接:https://pan.baidu.com/s/1gF5IseFL0vrJkkgwBNi7CA
提取码:yyds
解压后有如下三个文件:

- # 使用管理打开 cmd
- 绝对路径\instsrv.exe 服务名 绝对路径\srvany.exe
-
- 注意:必须输入两个.exe 文件的绝对路径,否则会报如下错误
- - The fully qualified path to the .EXE must be given
- C:\Users\Administrator>D:\test\dbs\instsrv.exe kapacit D:\test\dbs\srvany.exe
-
- # 自定义服务名为 kapacit
服务创建成功:

但还没完,需要到注册表修改服务参数:

找到刚刚创建的服务路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kapacit
右击-新建-项

命名为 Parameters

本例中:
AppDirectory = "D:\test\dbs\kapacitor"(脚本所在的目录路径)
Application = "D:\test\dbs\kapacitor\kapacitor_start.bat"(脚本所在的绝对路径)


在任务管理器中启动服务即可成功!!!
- sc delete kapacit
-
- 或者
-
- D:\test\dbs\instsrv.exe kapacit remove
右击编辑 server.bat 文件:

只需要修改图片标注的地方,Crtl + S 保存,然后双击运行该文件即可自动注册好服务,就不需要上面那样麻烦的点击与修改。