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

Jenkins节点重启后Pipeline停在Ready to run状态无法自动恢复

解决Jenkins声明式Pipeline重启后无法恢复PowerShell步骤的问题

针对你遇到的Jenkins重启(节点崩溃、主节点升级/重启等)后,Pipeline停在“Ready to run”状态无法自动恢复执行pwsh脚本的问题,可尝试以下方案:

1. 启用Pipeline步骤重启策略

在声明式Pipeline中添加restartStepsOnResume true配置,强制Jenkins在恢复时重新执行中断的步骤。修改后的Jenkinsfile如下:

pipeline {
    agent any
    options {
        restartStepsOnResume true // 全局启用步骤重启
    }

    stages {
        stage('Build') {
            // 也可仅在特定stage启用该策略:
            // options { restartStepsOnResume true }
            steps {
                withCredentials(...) {
                    pwsh script: './myscript.ps1', encoding: 'UTF-8'
                }
            }
        }
    }
}

该配置会让Jenkins在Pipeline恢复时,重新执行中断点之后的步骤,而非停滞在等待状态。

2. 升级PowerShell插件

你当前使用的PowerShell插件版本为1.8,较旧版本可能存在与Jenkins核心(2.375.1)适配的步骤恢复逻辑问题。建议升级到最新稳定版(在Jenkins插件管理中搜索“PowerShell”即可操作),新版本通常会修复这类兼容性问题。

3. 确保Windows节点重启后自动重连

检查Windows内置节点的配置:

  • 确认节点以Windows服务形式运行,设置为“随系统自动启动”,确保节点崩溃重启后能自动连接到Jenkins主节点。
  • 若使用JNLP连接方式,检查节点的连接配置是否正确,避免因连接失败导致Pipeline找不到可用节点而停滞。

4. 验证脚本的可重入性

确保myscript.ps1及其中运行的Python程序支持重入执行——即中断后重新启动不会引发资源冲突、数据重复等问题。如果脚本本身无法处理重复执行,即使Jenkins恢复步骤,也可能出现异常,需在脚本中添加幂等性处理(如检查进程是否已存在、数据是否已处理完成等)。

补充说明

虽然JENKINS-43587已修复主节点重启后的Pipeline整体恢复问题,但特定步骤(如pwsh)的恢复可能受插件版本、节点配置等因素影响,上述方案覆盖了常见的修复场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:06:39