首页 > 解决方案 > 如何运行第一个批处理文件并转到第二个批处理文件而不等待完成第一个批处理文件

问题描述

我想在厨师中运行两个不同的批处理文件。问题是,在执行第一个批处理文件后,它正在等待完成,然后执行批处理文件 2。不等待batchfile1完成我想执行batchfile2。

batch "run-script1" do
  code  "batchfile1"
  cwd "path"
  action :run
end

等待完成batchfile1执行然后执行batchfile2

batch "run-script2" do
  code  "batchfile2"
  cwd "path"
  action :run
end

不等待batchfile1完成我想执行batchfile2

标签: chef-infra

解决方案


如果您有一个以路径位置命名的文件batchfile1path并且您希望它会被执行......那么它就不会发生,因为这不是batch资源的工作方式。

我可以假设第一个batch资源执行失败,导致 chef-client 运行失败,因此第二个batch资源没有执行。

批处理资源创建并执行一个临时文件(类似于脚本资源的行为方式),而不是内联运行命令。例如:

batch 'echo some env vars' do
  code <<-EOH
    echo %TEMP%
    echo %SYSTEMDRIVE%
    echo %PATH%
    echo %WINDIR%
    EOH
end

推荐阅读