文章目录
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。
- 将instsrv.exe和srvany.exe拷贝到
C:\Tools
目录下 - 以管理员身份运行cmd,切换到C:\Tools目录下
- 运行命令:
instsrv MyService C:\Tools\srvany.exe
注意:Myservice
是自定义的服务的名称,可以根据应用程序名称任意更改
运行成功!
配置
- 打开注册表:(cmd中输入:
regedit
) - ctrl+F,搜索
Myservice
(之前自定义的服务名称) - 右击
Myservice
新建项,名称为Parameters
- 之后在Parameters中新建几个
字符串值
- 名称 Application 值:你要作为服务运行的程序地址。
- 名称 AppDirectory 值:你要作为服务运行的程序所在文件夹路径。
- 名称 AppParameters 值:你要作为服务运行的程序启动所需要的参数。
之后启动服务Myservice
即可后台运行bat文件
1.2.3 设置服务之间的依赖关系;
参考第2章节配置服务之间的依赖关系
1.2.4 启动测试
设置完成后,可以在服务管理器中先手动启动一次,之后每次电脑开机后会自动启动。
2. 配置服务之间的依赖关系
2.1 应用场景
部分服务之间有依赖关系,或者说是有先后的启动顺序,如服务Run_Gateway
必须在数据库服务MySQL
启动后再启动。这时候就需要给服务Run_Gateway
添加依赖配置。
2.2 操作步骤
- 以管理员身份运行cmd;
- 执行命令
sc config "Run_Gateway" depend= "MySQL"
表示Run_Gateway服务依赖于MySQL服务。