批处理命令一键启动多个服务
新的项目用的微服务架构。服务启动前要启动Etcd,Redis等前置条件。然后还要启动微服务下各个模块。一个一个的点击exe,或者敲命令太费时间。然后想到用批处理命令,把各个环节的启动放到一个bat文件里一键启动。
经过反复试验测试,成功达到预期效果。写个文章做备份。
最开始把命令都写在一起,部分能启动,部分闪退,应该是不在同一目录下一些环境或者配置拿不到导致的。
然后换个思路,每个服务目录下都新建一个bat文件,分别测试能启动。然后一个总的bat文件去分别调用每个服务的bat文件。
总的bat文件代码如下:
@echo off rem start "" cmd /k call b.bat rem ""是一段字符串,代表新打开的cmd窗口的名字,可以随便起名。 rem /k是表示新打开的cmd窗口在执行完命令后保存打开状态,如果希望执行完就关闭窗口就使用/c rem call b.bat表示call命令,即调用b.bat文件;该命令可以用""括起来,即:"call b.bat" rem 服务启动顺序 ectd、redis、postgre他们先起,然后网关、权限、config、view、下装,最后FEP、RTDB、Alarm、Realtime ::=========================Etcd================================= echo now run the Etcd ... cd /d C:Etcd start "Etcd" cmd /k call Etcd.bat ::等待5秒 start /min /w mshta vbscript:setTimeout("window.close()",5000) ::=========================Redis================================ echo now run the Redis ... cd /d C:Redis start "Redis" cmd /k call Redis.bat ::等待5秒 start /min /w mshta vbscript:setTimeout("window.close()",5000) ::==========================PhiliGateway======================= echo now run the PhiliGateway ... cd /d D:PhiliCubeApplicationPhiliGateway start "PhiliGateway" cmd /k call phili-gateway.bat ::等待15秒 start /min /w mshta vbscript:setTimeout("window.close()",15000) ::==========================PhiliAuthority====================== echo now run the PhiliAuthority ... cd /d D:PhiliCubeApplicationPhiliAuthority start "PhiliAuthority" cmd /k call phili-auth-server.bat ::等待20秒 start /min /w mshta vbscript:setTimeout("window.close()",20000) ::==========================PhiliConfig========================= echo now run the PhiliConfig ... cd /d D:PhiliCubeApplicationPhiliConfigConfigServerV2 start "PhiliConfig" cmd /k call PhiliConfigStart.bat ::等待10秒 start /min /w mshta vbscript:setTimeout("window.close()",10000) ::===========================PhiliView========================== echo now run the PhiliView ... cd /d D:PhiliCubeApplicationPhiliViewphiliviewserver start "PhiliView" cmd /k call philiview.bat ::等待5秒 start /min /w mshta vbscript:setTimeout("window.close()",5000) ::============================PhiliRealTime===================== echo now run the PhiliRealTime ... cd /d D:PhiliCubeApplicationPhiliRealTime start "PhiliRealTime" cmd /k call runPhiliRealTime.bat ::=====================do other somthing======================== echo this window will be closed ... ::等待10秒 start /min /w mshta vbscript:setTimeout("window.close()",10000) exit
Etcd的bat代码如下:
@echo off echo start Etcd ... title Etcd etcd --config-file=./etcd.conf.yml
Redis(exe类型)的bat代码如下:
@echo off echo start redis ... title Redis redis-server.exe
Auth(jar类型)代码如下:
@echo off title phili-auth-server java -jar phili-auth-server.jar
Config(NodeJs类型)代码如下:
@echo off echo start PhiliConfig ... cd D:PhiliCubeApplicationPhiliConfigConfigServerV2 title PhiliConfig cfgnode.exe server.js