如何在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

回到顶部