Consul持久化配置过程中运行consul_start.bat碰到[SC]CreateService失败1073,发生系统错误2,系统找不到指定的文件的问题。全网最后的解决方案

问题描述

在看某教学视频的时候,在Consul持久化配置过程中运行consul_start.bat碰到[SC]CreateService失败1073,发生系统错误2,系统找不到指定的文件的问题。通过执行sc delete consul、系统环境变量配置、更改.bat文件中路径地址和编码方式都无效的情况下,可以采取以下措施。

解决办法

通过一下几个方法解决,依次尝试,最后一个的解决方式是全网独一份

首先简单介绍consul的持久化配置方法

consul持久化的方式是在consul.exe的同级目录下新建一个空的mydata文件夹。

然后在该路径下新建consul_start.bat文件,内容如下(路径改成你自己的路径),并且右键该consul_start.bat文件,以管理员身份运行。

@echo.服务启动......  
@echo off  
@sc create Consul binpath= "D:\software\consul\consul.exe agent -server -ui -bind=127.0.0.1 -client=0.0.0.0 -bootstrap-expect  1  -data-dir D:\software\consul\mydata"
@net start Consul
@sc config Consul start= AUTO  
@echo.Consul start is OK......success
@pause

然后出现了以下错误

3个解决方案如下:

1、在运行consul_start.bat文件前通过终端管理员方式运行 sc delete consul 命令,然后用管理员身份运行.bat文件。

2、如果一个解决方案不行,那么尝试第二个方法。修改.bat文件为如下,并且把两个路径改成你自己的路径。

@echo off
@echo 服务启动...
@set "consulPath=D:\software\consul\consul.exe"
@set "dataDir=D:\software\consul\mydata"
@sc create Consul binpath= "%consulPath% agent -server -ui -bind=127.0.0.1 -client=0.0.0.0 -bootstrap-expect 1 -data-dir %dataDir%"
@net start Consul
@sc config Consul start= AUTO
@echo Consul start is OK... success
@pause

如果上面两个方法都没用,还是存在下图的问题,那么请看第三条终极大招

3、重点!!!如果你忘记修改了consul.exe和mydata的路径,并且运行了.bat文件,会出现上图情况,那么恭喜你,踩到坑了,也就是——你想重新编辑该bat文件,修改完毕这两个路径后再运行consul_start.bat文件,会发现仍然出现了上图的情况,即系统找不到指定的文件,但是我.bat文件中的路径都是正确的,这是为什么呢?这个坑我全网找不到一个解决方案。本人阅读了大量资料才解决,解决方法如下:

首先,打开任务管理器,你会发现在任务管理器-----服务中出现consul,但是它是显示已停止(这说明你的未修改的mydata路径已经被配置进去了,但是它是无效的),如下图所示

如何验证它是无效的呢?.右键该consul,点击点击“开始”,发现没有用,再右键该consul,点击“打开服务”,会弹出一个服务框,在这里找到consul,右键点击“启动”,是无法启动的,再右键点击“属性”,可以看到可执行的路径中显示了你未修改的mydata路径,但这个路径在你的磁盘中是没有的,因此会导致你运行.bat出现找不到指定的文件。至此,问题所在被确认,也就是我说的这说明你的未修改的mydata路径已经被配置进去了,但是它是无效的”。

因此当前目标应该是删除该无效的consol服务。你这个时候应该在以终端管理员运行sc delete Consul,但是发现没什么卵用。那就用终极大招。win+R输入regedit打开注册表,找到下图所在的路径,如何找到consul,右键删除,再重启电脑。重启电脑后再打开任务管理器的服务和注册表,就发现该consul消失了,那么就把无效的consul服务删除成功了。

最后,再进入以管理员方式运行consul_start.bat,即可成功。我的.bat文件内容是上面最原始的那个。如果终端中长时间处于下图的状况,你就键盘ctrl+C,它就会显示下一条。

停了就ctrl+C一次,直到全部显示完毕

很多人碰到了这个问题,但是网上找不到一个解决方案,本人由于不想让大家继续踩坑,因此写了这张帖子。如果该帖子对你有帮助,请点赞评论。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值