Windows系统Jenkins运行bash.exe报exit -1073741819错误咨询
问题原因与修复方案
你遇到的错误码-1073741819对应Windows系统的STATUS_ACCESS_VIOLATION(访问违规),结合本地执行正常、Jenkins执行异常的特征,大概率是执行上下文不一致导致的,常见原因和对应修复方法如下:
- 32位Jenkins触发系统路径重定向
如果你的Jenkins是32位版本,运行在64位Windows系统上时,访问C:\Windows\System32\路径会被系统自动重定向到存放32位组件的C:\Windows\SysWOW64\目录,而WSL的bash.exe默认只存放在64位的System32目录下,32位程序访问时找不到文件就会触发执行错误。
修复方式:把执行命令替换为C:\Windows\Sysnative\bash.exe --version即可,Sysnative是64位系统为32位程序预留的虚拟路径,指向真实的64位System32目录,不会触发重定向。 - Jenkins服务运行账户不匹配
你本地手动执行命令时用的是当前登录的个人用户账户,WSL环境也是在该账户下初始化配置的。而Jenkins服务默认使用Local System系统账户运行,该账户没有初始化过WSL环境,也没有对应的运行权限,所以调用bash.exe会失败。
修复方式:打开Windows服务管理器,找到Jenkins对应的服务项,右键选择「属性」→「登录」选项卡,切换为你本地执行命令时使用的用户账户,保存配置后重启Jenkins服务再测试即可。 - WSL版本调用方式不兼容
如果你使用的是WSL2,直接调用旧版bash.exe的兼容性较差,也可能出现上下文隔离导致的访问错误。
修复方式:将执行命令替换为wsl --exec bash --version,通过官方的wsl入口调用bash,兼容性更高。
内容的提问来源于stack exchange,提问作者João P.
相关产品推荐
相关产品推荐

