我们的 Jenkins 服务器有一个工作已经运行了三天,但没有做任何事情。点击角落里的小 X 没有任何反应,控制台输出日志也没有显示任何内容。我检查了我们的构建服务器,该工作实际上似乎根本没有运行。
有没有办法告诉詹金斯工作已经“完成”,通过编辑一些文件或锁或其他东西?由于我们有很多工作,我们真的不想重新启动服务器。
转到“管理 Jenkins”>“脚本控制台”在您的服务器上运行脚本以中断挂起的线程。
您可以获取所有活动线程Thread.getAllStackTraces()并中断正在挂起的线程。
Thread.getAllStackTraces()
Thread.getAllStackTraces().keySet().each() { t -> if (t.getName()=="YOUR THREAD NAME" ) { t.interrupt(); } }
更新:
上述使用线程的解决方案可能不适用于更新的 Jenkins 版本。要中断冻结的管道,请参阅此解决方案(由alexandru- bantiuc 提供)并运行:
Jenkins.instance.getItemByFullName("JobName") .getBuildByNumber(JobNumber) .finish( hudson.model.Result.ABORTED, new java.io.IOException("Aborting build") );