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

Azure Pipeline中Proxy Server后台启动后停止的问题排查

Azure Pipeline中后台运行Java Jar进程自动终止的原因及解决办法

这不是Azure不支持后台运行Proxy Server,而是Azure Pipeline的任务生命周期限制导致的:每个Pipeline任务在执行完毕后,会自动清理该任务产生的所有子进程,哪怕你用nohup java -jar pit-bastion-tunnel-$(ver).jar &把进程放到后台,当bash脚本执行完最后一行命令后,Azure会终止这个后台进程,所以你会看到Proxy被优雅关闭的日志。

以下是几种解决思路:

  • 临时后台运行(适用于Pipeline后续任务依赖该Proxy的场景)
    在启动后台进程后,让当前bash任务保持运行状态,避免任务结束触发进程清理。比如添加等待逻辑:

    nohup java -jar pit-bastion-tunnel-$(ver).jar &
    # 可以根据需求设置等待条件,比如检测端口是否存活,或直接等待固定时长
    sleep 3600 # 示例:等待1小时,后续任务完成后可手动终止
    

    注意:这种方式会占用任务执行时间,若等待过久可能触发Pipeline超时。

  • 利用Azure Pipeline的后台任务机制(推荐)
    在YAML管道中,可将启动Proxy的步骤标记为后台运行,让Pipeline继续执行后续任务的同时保持Proxy存活:

    jobs:
    - job: ProxyJob
      steps:
      - bash: java -jar pit-bastion-tunnel-$(ver).jar
        displayName: '启动Proxy服务'
        background: true
        continueOnError: true
      # 后续步骤可以正常访问该Proxy
      - bash: |
          # 示例:后续任务使用Proxy的逻辑
          curl -x http://127.0.0.1:11111 https://example.com
    
  • 部署到长期运行资源(适用于需要持续运行的Proxy)
    如果Proxy需要长期在线,而非仅在Pipeline执行期间运行,应将其部署到Azure VM、App Service、Container Apps等持续运行的资源中,而非在Pipeline任务内启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:25:38