bat文件注册为Windows服务与依赖关系设置

1. 批处理文件注册为服务

1.1 应用场景

微服务架构下的jar包启动,一般都是通过命令行java -jar -Dfile.encoding=utf-8 %JAVA_OPTS% gateway.jar,这样的问题就是会出现一个控制台窗口,而且为了保证服务可用要一直开着控制台窗口,另外每次开机都需要手动开启服务。这对于用户来说不太友好。

可以将命令写到bat批处理文件中,然后将批处理文件注册为Windows服务,并设置为开机自启动。这样既实现了服务开机自启,同时也没有了控制台窗口,避免用户误触关闭。

1.2 操作步骤

1.2.1 编写批处理文件;

示例:Run_Gateway.bat

@echo off
echo.
echo [INFO] Startup gateway server
echo.

set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m

java -jar -Dfile.encoding=utf-8 %JAVA_OPTS% gateway.jar

pause

1.2.2 借助instsrv+srvany将批处理文件注册为服务;

关于instsrv和srvany可以参考最下面的链接1

  1. 将instsrv.exe和srvany.exe拷贝到C:\Tools目录下
  2. 以管理员身份运行cmd,切换到C:\Tools目录下
  3. 运行命令:instsrv MyService C:\Tools\srvany.exe

注意:Myservice是自定义的服务的名称,可以根据应用程序名称任意更改

运行成功!

配置

  1. 打开注册表:(cmd中输入:regedit
  2. ctrl+F,搜索Myservice(之前自定义的服务名称)
  3. 右击Myservice新建项,名称为Parameters
  4. 之后在Parameters中新建几个字符串值
  • 名称 Application 值:你要作为服务运行的程序地址。
  • 名称 AppDirectory 值:你要作为服务运行的程序所在文件夹路径。
  • 名称 AppParameters 值:你要作为服务运行的程序启动所需要的参数。

之后启动服务Myservice即可后台运行bat文件

1.2.3 设置服务之间的依赖关系;

参考第2章节配置服务之间的依赖关系

1.2.4 启动测试

设置完成后,可以在服务管理器中先手动启动一次,之后每次电脑开机后会自动启动。

2. 配置服务之间的依赖关系

2.1 应用场景

部分服务之间有依赖关系,或者说是有先后的启动顺序,如服务Run_Gateway必须在数据库服务MySQL启动后再启动。这时候就需要给服务Run_Gateway添加依赖配置。

2.2 操作步骤

  1. 以管理员身份运行cmd;
  2. 执行命令
sc config "Run_Gateway" depend= "MySQL"

表示Run_Gateway服务依赖于MySQL服务。

参考链接

猜你喜欢

转载自blog.csdn.net/wml00000/article/details/123181368
今日推荐