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

Azure DevOps Pipeline能否通过SSH启动VM脚本后执行后续任务?

解决Azure DevOps Pipeline SSH任务不等待BAT脚本执行完成的问题

要实现Pipeline无需等待远程BAT脚本执行完成就进入下一个任务,核心是让远程机器后台异步执行BAT脚本,而非让SSH任务等待脚本执行结束。你之前用timeoutInMinutes和continueOnError的方式会直接终止远程进程,这是错误的处理方式。

具体解决方案

修改SSH任务的commands配置,通过start /b命令让BAT脚本在远程机器后台运行,这样SSH任务会立即返回,Pipeline可继续执行后续任务:

- task: SSH@0
  inputs:
    sshEndpoint: 'qam2'
    runOptions: 'commands'
    commands: 'start /b cmd /c "path-to-bat-file"'
    readyTimeout: '20000'

参数说明

  • start /b:在后台启动进程,不弹出新命令行窗口,且不会阻塞当前SSH会话
  • cmd /c "path-to-bat-file":启动新CMD进程执行指定BAT脚本,执行完成后自动关闭CMD进程

若BAT文件路径包含空格,必须用双引号包裹路径,示例:

commands: 'start /b cmd /c "C:\My Scripts\test.bat"'

注意事项

这种方式下,你的BAT脚本会在远程机器上持续执行至完成,不会被Pipeline终止。脚本内的start /wait等逻辑不受影响,依然会按原设计运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:31:18