【问题标题】:Error - Jenkins detected running multiple instances错误 - Jenkins 检测到运行多个实例
【发布时间】:2014-01-31 13:10:10
【问题描述】:

我将 Jenkins 作为 Windows 服务运行。一切都好,突然从今天中午开始打开时看到以下错误。

Jenkins 检测到您似乎正在运行多个实例 共享同一主目录的 Jenkins ''。这个 极大地混淆了詹金斯,你可能会遇到奇怪的 行为,所以请纠正这种情况。

这个 Jenkins:17485453 contextPath="" at 1264@
其他 Jenkins:15621395 contextPath="" at 13424@

这是怎么发生的?有什么帮助解决这个问题吗?

感谢任何帮助!

【问题讨论】:

    标签: jenkins hudson


    【解决方案1】:

    针对此问题的其他人的 MacOS 解决方案,而不是在 Windows 上:

    这是我在 MacOS 上遇到此问题时看到的错误消息:

    以下是该机器的规格(如果相关):

    尽管出现了可怕的错误消息,但我实际上能够忽略此警告并使用 Jenkins 一个月而没有注意到任何灾难,但我确信里程可能会有所不同。

    我不知道最初是什么导致了这种情况。

    注意:在活动监视器中搜索“Jenkins”不会显示任何信息,

    使用 top 也不是很有用。这里没有 Jenkins……我确实看到了一个随机的 Java 进程,这可能是相关的,但我们还不能确定,

    将活动监视器中的搜索更改为“Java”给了我想要的东西

    在右侧您可以看到我的两个 Java 进程,在左侧您可以看到它们的 PID 与浏览器中显示的错误消息中提到的完全匹配。一个非常好的指标,表明我们没有追逐一些杂散的 Java 进程。我特别不想杀死一个我不知道它在做什么的 Java 进程。

    我单击浏览器中的“忽略此问题并继续使用 Jenkings”按钮进入我通常使用的 Jenkins GUI。

    我开始使用 Jenkins,实际上我开始构建,所以我可以看到实际使用了哪个实例。从逻辑上讲,它的 CPU 使用率应该在 Activity Monitor 中上升

    酷。所以我会保留最上面的那个,而最下面的那个没有被使用。您可以看到最上面的那个现在使用了 0.2% 或 20% 的可用 CPU。

    问题解决了。至于弄清楚他们俩是如何分道扬镳的,那是另一个问题。这可能与您如何安装和配置它、是否安装了两次等有关。

    【讨论】:

      【解决方案2】:

      停止您的 Jenkins 服务。然后使用 Windows 任务管理器或更好的 Sysinternals Process Explorer 来杀死所有 Jenkins 进程。 “1264@”和“13424@”开头的数字表示需要杀死的进程的id。之后,您应该能够再次启动 Jenkins 服务。

      【讨论】:

      • 我在 Ubuntu 上遇到了类似的问题,我需要杀死另一个在 service jenkins stop 没有停止两个实例之后运行的实例。
      • 在类 unix 系统上,您可以使用 kill -s 9 <pid> 将其杀死,其中 pid 由 jenkins 的错误消息提供(第二个数字)。
      • 我在 docker 容器上运行了一个 jenkin 服务器。停止了,虽然只有一个容器重新启动了,但是上面提到的这个问题用 ps 命令检查并显示 2 并删除了旧的
      • 我的两个实例都具有相同的 ID,在这种情况下我该怎么办?他的 Jenkins:921747266 contextPath="" at 6@113c7f12acea 其他 Jenkins:921747266 contextPath="" at 6@113c7f12acea 请注意,我将它托管在 docker 上。
      【解决方案3】:

      我遇到了与 OP 相同的错误,我使用 Fabian 上面推荐的 Process Explorer 来查找与 Jenkins 相关的两个 java.exe 进程。我使用 PE 杀死了两个 java 进程,重新启动了 Jenkins 服务,Jenkins 现在可以正常运行,没有错误。

      【讨论】:

        【解决方案4】:

        或者使用 Tomcat Manager Gui (http://:8080/manager/html) 来停止/取消部署重复的进程。用户名和密码在 tomcat/conf/tomcat-users.xml
        如果不添加 " password="" roles="manager-gui"/>

        到节点。

        【讨论】:

          【解决方案5】:

          另外,请查看错误消息中的详细信息。我的意思是这部分:

          This Jenkins: 1234567890 contextPath="" at 12345@<MachineName>
          Other Jenkins: 0978654321 contextPath="" at 54321@<MachineName>
          

          现在“at”和“@”之间的数字是进程 ID,用于帮助识别所涉及的进程。

          在某些情况下,这些 ID 和“contextPath”之前的数字相同。阅读:“This Jenkins”和“Other Jenkins”是同一个过程。

          这种特殊情况是已知的 Jenkins 错误,请参见此处:https://issues.jenkins.io/browse/JENKINS-61792

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-12-01
            • 2015-12-03
            • 2018-01-29
            相关资源
            最近更新 更多