我们的Jenkins服务器有一个已经运行了三天的作业,但是没有做任何事情。单击角落里的小X没有任何作用,控制台输出日志也没有显示任何内容。我在我们的构建服务器上检查过,该作业实际上似乎根本没有在运行。

有没有办法告诉jenkins工作已经“完成”了,比如编辑一些文件或锁之类的?因为我们有很多任务,所以我们并不想重新启动服务器。


当前回答

有一次我遇到了一个无法通过“脚本控制台”停止的构建。最后我通过以下步骤解决了这个问题:

ssh onto the jenkins server
cd to .jenkins/jobs/<job-name>/builds/
rm -rf <build-number>
restart jenkins

其他回答

如果“X”按钮不起作用,作业被卡住,那么只需删除特定的版本号。这将解放遗嘱执行人。

在我的例子中,即使工作完成了,它仍然停留在执行者几个小时。删除构建对我来说是有效的。

这些方法对我来说都没用。我不得不重新启动安装服务器的机器。这种杀不死的工作现在已经没有了。

半小时前我也有同样的问题…

无法删除在我的多分支管道中运行的僵尸构建。 甚至服务器重启UI,甚至从命令行通过sudo服务jenkins重启 阻止了行刑…建造是无法停止的……它总是重新出现。

使用版本:Jenkins 2.150.2

我很生气,但是……在查看构建日志时,我在日志的末尾发现了一些有趣的东西:

红色标记的部分是“令人沮丧的部分”…… 正如你所看到的,我一直想要从UI中止构建,但它不起作用…

但是有一个文本超链接点击这里强制终止运行步骤…(第一个绿色的) 现在我按下了链接…) 在链接执行后,出现了关于仍然暂停的消息和另一个链接单击 这里强制杀死整个建筑(第二个绿色的) 在按下这个链接之后,这个构建也最终被硬杀了…

因此,这似乎不需要任何特殊的插件(除了多分支管道构建插件本身)。

如果你有一个Multibranch Pipeline-job(并且你是Jenkins-admin),在Jenkins脚本控制台中使用这个脚本:

Jenkins.instance
.getItemByFullName("<JOB NAME>")
.getBranch("<BRANCH NAME>")
.getBuildByNumber(<BUILD NUMBER>)
.finish(hudson.model.Result.ABORTED, new java.io.IOException("Aborting build"));

从https://issues.jenkins - ci.org/browse/jenkins - 43020

如果你不确定作业的全名(路径)是什么,你可以使用下面的代码片段列出所有项的全名:

  Jenkins.instance.getAllItems(AbstractItem.class).each {
    println(it.fullName)
  };

从https://support.cloudbees.com/hc/en-us/articles/226941767-Groovy-to-list-all-jobs

我也有同样的问题,并修复它通过詹金斯控制台。

进入“Manage Jenkins”>“Script Console”,运行一个脚本:

 Jenkins .instance.getItemByFullName("JobName")
        .getBuildByNumber(JobNumber)
        .finish(hudson.model.Result.ABORTED, new java.io.IOException("Aborting build")); 

您只需指定JobName和JobNumber。