如何在Jenkins上停止无法阻止的僵尸作业而无需重新启动服务器?
我们的Jenkins服务器有一项已经运行了三天的工作,但是什么也没做。单击角落的小X不会执行任何操作,并且控制台输出日志也不会显示任何内容。我已经检查了我们的构建服务器,该工作实际上似乎根本没有运行。
有没有办法通过编辑某些文件或锁或其他内容来告诉jenkins该工作已“完成”?由于我们有很多工作,因此我们实际上并不想重启服务器。
回答:
转到“管理Jenkins”>“脚本控制台”以在服务器上运行脚本以中断挂起的线程。
您可以获取所有活动线程,Thread.getAllStackTraces()
并中断正在挂起的线程。
Thread.getAllStackTraces().keySet().each() { t -> if (t.getName()=="YOUR THREAD NAME" ) { t.interrupt(); }
}
更新:
上述使用线程的解决方案可能无法在最新的Jenkins版本上使用。并运行:
Jenkins.instance.getItemByFullName("JobName") .getBuildByNumber(JobNumber)
.finish(
hudson.model.Result.ABORTED,
new java.io.IOException("Aborting build")
);
以上是 如何在Jenkins上停止无法阻止的僵尸作业而无需重新启动服务器? 的全部内容, 来源链接: utcz.com/qa/417590.html