背景:
最近学习SpringCloud,需要用到Consul就下载搞一下。
在公司电脑上启动后发现LAN的端口被监控软件占用。
启动命令:
consul agent -dev
根据错误信息发现8301的端口被占用。
初步决定通过kill掉8301来解决。
根据端口号查询pid
netstat -aon|findstr 8301
查询7584的进程名称
tasklist |findstr 7584
通过进程名称杀死进程
taskkill /f /t /im winrdlv3.exe
发现无法杀死。
决定通过更改Consul启动端口号解决
在启动时指定端口
1.准备好一个data.json文件
{"ports":{"server":8300,"serf_lan":9301,"serf_wan":9302,"http":8500,"dns":8600}}
2.放置在于consul.exe同级目录下
3.切换至Consul目录下cmd执行
consul agent -server -bootstrap-expect 1 -data-dir .\ -advertise 127.0.0.1 -client 0.0.0.0 -ui -config-dir .\
执行完成后稍等一下,看到日志输出正常后,浏览器访问localhost:8500,访问正常后就算启动成功了,同时我们的consul的目录下多了一些文件。
至此基本已经解决问题了。
优化
每次都要复制这么长的命令容易出错,并且还要切换到目录里才能执行,非常麻烦。
然后我就想到用.bat去帮我切换盘符并且执行命令进行启动。
1.新建一个后缀名为.bat的批处理文件。
2.输入以下命令
@echo off
start cmd /k "cd /d D:\consul_1.7.1_windows_amd64&&consul agent -server -bootstrap-expect 1 -data-dir .\ -advertise 127.0.0.1 -client 0.0.0.0 -ui -config-dir .\"
exit
@echo off和 exit为开始和结束的命令
start 执行命令的前缀
cmd 打开cmd窗口
cd 切换盘符
&& 盘符与命令之间需要用&&进行连接!!!
结束
参考链接:
consul修改本地环境的端口
使用bat脚本自动打开cmd并执行命令
灵感来源:
.bat启动windows中.exe应用