You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins并行执行两个Bat命令异常问题求助

解决Jenkins并行运行Putty与诊断工具的问题

嘿,我来帮你搞定这个Jenkins并行运行Putty和诊断工具的问题!

你现在遇到的情况根源在于当前parallel阶段的执行逻辑是阻塞式的:

  • 启动Putty的bat 'putty.exe -load "myConfiguration"'命令会一直占用控制台,必须等Putty手动关闭才会结束这个stage;
  • 诊断工具的stage执行完成后就结束了,但Putty的stage还在持续等待,最终导致诊断工具停了、Putty却一直运行,Jenkins任务也卡在那里无法收尾。

正确的解决方案

把所有操作合并到同一个stage中,采用「后台启动Putty → 运行诊断工具 → 诊断完成后终止Putty」的流程,脚本示例如下:

stage('Data collection') {
    agent { label 'HCNJKENCFDSL' }
    steps {
        dir("C:/..../PuTTY") {
            // 后台启动Putty,避免阻塞Jenkins流程
            bat 'start /B putty.exe -load "myConfiguration"'
        }
        // 运行诊断工具脚本,此步骤会阻塞直到诊断工具执行完成
        bat 'C:/.../Application_D_Start.vbs'
        // 诊断工具结束后,强制终止Putty进程
        bat 'taskkill /IM putty.exe /F'
    }
}

关键步骤说明

  • start /B:让Putty在后台启动,这样Jenkins不会等待Putty关闭,而是继续执行后续步骤;
  • 诊断工具脚本:这一步会正常阻塞,直到诊断工具完成所有任务;
  • taskkill /IM putty.exe /F:诊断完成后强制杀掉Putty进程,确保Jenkins任务能正常结束。

如果你的环境中可能存在多个Putty实例,可以考虑通过窗口标题或进程ID来精准终止对应进程,但如果本次启动的Putty是唯一实例,上面的命令就足够用啦。

内容的提问来源于stack exchange,提问作者Sharky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:27:09