目录
需求说明:
一、Nssm(推荐)
二、Sc 命令
命令格式:
命令参数:
案例演示:
三、instsrv + srvany
命令格式:
案例演示:
(1)打开注册表(win+r运行regedit)
(2)给 kapacit 服务增加子项 Parameters
(3)给子项 Parameters 增加两个字符串类型的参数 AppDirectory 和 Application,并指定参数值
(4)启动服务
(5)移除服务
server.bat 使用方法
需求说明:
因为最近时长需要在Windows上使用bat脚本启动服务如influxdb、kapacitor等,想把命令行窗口隐藏起来,做成系统服务管理也方便。
下面介绍3中方法来注册系统服务!!!
一、Nssm(推荐)
使用 Nssm 工具注册系统服务是最为方便、有效的!!!
可以查看我的这篇文章:Windows 和 Linux 下后台运行 Jar包_Stars.Sky的博客-CSDN博客_cmd后台启动jar包
这里着重介绍另外两个方法。
二、Sc 命令
SC 是用来与服务控制管理器和服务进行通信的命令行程序。也可以将.bat 脚本或 .exe 程序注册成windos服务。
命令格式:
这里需要用管理员角色启动doc命令窗口。
# 创建服务:
sc create ServiceName binpath= 脚本路径.bat start= auto type= own displayname= 服务名
(注意“=”后有个空格)
# 删除服务:
sc delete 服务名
命令参数:
- ServiceName:在注册表中为service key制定的名称。注意这个名称是不同于显示名称的(这个名称可以用net start和服务控制面板看到),而SC是使用服务键名来鉴别服务的。
- binpath= BinaryPathName:指定一个进入服务二进制文件的路径。binpath= 没有默认值,必须要给出此字符串。
- type= {own | share | interact | kernel | filesys | rec | adapt}:关于建立服务的类型,选项值包括驱动程序使用的类型,默认是share。
- start= {boot| system| auto| demand| disabled}:关于启动服务的类型,选项值包括驱动程序使用的类型,默认是demand(手动)。
- displayname= DisplayName:指定被用户界面程序用来标识服务的友好名称。
案例演示:
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 + srvany
instsrv.exe和srvany.exe是Microsoft Windows Resource Kits工具集中的两个实用工具,这两个工具配合使用可以将任何的exe应用程序作为window服务运行。
srany.exe是注册程序的服务外壳,可以通过它让应用程序以system账号启动,可以使应用程序作为windows的服务随机器启动而自动启动,从而隐藏不必要的窗口。
下载链接:https://pan.baidu/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
服务创建成功:
但还没完,需要到注册表修改服务参数:
-
(1)打开注册表(win+r运行regedit)
找到刚刚创建的服务路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kapacit
-
(2)给 kapacit 服务增加子项 Parameters
右击-新建-项
命名为 Parameters
-
(3)给子项 Parameters 增加两个字符串类型的参数 AppDirectory 和 Application,并指定参数值
本例中:
AppDirectory = "D:\test\dbs\kapacitor"(脚本所在的目录路径)
Application = "D:\test\dbs\kapacitor\kapacitor_start.bat"(脚本所在的绝对路径)
-
(4)启动服务
在任务管理器中启动服务即可成功!!!
-
(5)移除服务
sc delete kapacit
或者
D:\test\dbs\instsrv.exe kapacit remove
server.bat 使用方法
右击编辑 server.bat 文件:
只需要修改图片标注的地方,Crtl + S 保存,然后双击运行该文件即可自动注册好服务,就不需要上面那样麻烦的点击与修改。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1737706838a3969215.html
评论列表(0条)