1. 批处理文件注册为服务
1.1 应用场景1.2 操作步骤
1.2.1 编写批处理文件;1.2.2 借助instsrv+srvany将批处理文件注册为服务;1.2.3 设置服务之间的依赖关系;1.2.4 启动测试 2. 配置服务之间的依赖关系
2.1 应用场景2.2 操作步骤 参考链接
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 pause1.2.2 借助instsrv+srvany将批处理文件注册为服务;
关于instsrv和srvany可以参考最下面的链接1。
- 将instsrv.exe和srvany.exe拷贝到C:Tools目录下以管理员身份运行cmd,切换到C:Tools目录下运行命令:instsrv MyService C:Toolssrvany.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服务。
参考链接[1]. 2种方法教你,如何将exe注册为windows服务,直接从后台运行[2]. WinServer配置服务依赖关系[3]. cmd批处理bat命令根据端口号一键关闭杀死对应进程程序



