【问题标题】:How to restart Jenkins manually?如何手动重启 Jenkins?
【发布时间】:2011-12-25 17:46:18
【问题描述】:

我刚开始使用 Jenkins,但遇到了问题。安装了几个插件后,它说需要重新启动并进入“关闭”模式,但永远不会重新启动。

如何手动重启?

【问题讨论】:

  • 注意:“Jenkins is Shutting Down”实际上并没有关闭,它只是通知可能想要构建 Jenkins 将很快重新启动的东西的各种用户。
  • 需要注意的是,我没有注意到其他人提到过...如果您将 Jenkins 置于关闭模式,它实际上并没有关闭,这已经提到过。没有注意到的是它会阻止新构建的开始。如果您需要在重新启动之前完成构建,您应该将 Jenkins 置于关闭模式,让您的构建完成,然后使用您从上面选择的任何方法进行“重新启动”。
  • 由于版本 1.442 Jenkins 不需要安装新插件后需要重启,使用“Install without重启”。不幸的是,此功能不适用于更新或卸载。

标签: jenkins


【解决方案1】:

要手动重启 Jenkins,您可以使用以下任一命令(通过在浏览器中输入其 URL):

(jenkins_url)/safeRestart - 允许所有正在运行的作业完成。重新启动完成后,新作业将保留在队列中以运行。

(jenkins_url)/restart - 强制重启而不等待构建完成。

【讨论】:

  • safeRestart见stackoverflow.com/a/15555339/260122java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080/ safe-restart(如果通过rpm或deb安装,否则相应调整)。
  • 这会在 Jenkins 1.532.1 和 IcedTea 2.3.9 中导致 RestartNotSupportedExceptionsudo /etc/init.d/jenkins restart 为我工作。
  • 在 Windows 中,使用 Windows 服务而不是命令行。
  • 是否有来自 jenkins 的内部链接来执行此操作而不是记住魔术网址?
  • 这在 web gui 中不可用吗?
【解决方案2】:

如果您安装为 rpmdeb,那么 service jenkins restart 也可以工作。

【讨论】:

    【解决方案3】:

    在 Ubuntu 或 Debian 上,通过 apt-get/dpkg 安装时:

    $ sudo /etc/init.d/jenkins restart
    Usage: /etc/init.d/jenkins {start|stop|status|restart|force-reload}
    

    【讨论】:

    【解决方案4】:

    SafeRestart Plugin 需要提及。它非常有用(安全重启)。它添加了一个可以从主菜单重新启动的链接:

    【讨论】:

    • 我经常使用这个功能来安装插件。
    • 奇怪的是这个插件默认不包含。
    【解决方案5】:

    下面的命令在 Red Hat Linux 中对我有用,也应该适用于 Ubuntu。

    • 要了解Jenkins的状态:

      sudo service jenkins status
      
    • 启动 Jenkins:

      sudo service jenkins start
      
    • 阻止詹金斯:

      sudo service jenkins stop
      
    • 要重启 Jenkins:

      sudo service jenkins restart
      

    命令提示符演示:

    [root@varunHome]# sudo service jenkins status
    jenkins (pid  7468) is running...
    
    [root@varunHome]# sudo service jenkins stop
    Shutting down Jenkins               [  OK  ]
    
    [root@varunHome]# sudo service jenkins start
    Starting Jenkins                    [  OK  ]
    
    [root@varunHome]# sudo service jenkins restart
    Shutting down Jenkins               [  OK  ]
    
    Starting Jenkins                    [  OK  ]
    [root@varunHome]#
    

    使用 windows 的人

    打开控制台/命令行 --> 转到您的 Jenkins 安装目录。分别执行以下命令:

    To stop:
    jenkins.exe stop
    
    To start:
    jenkins.exe start
    
    To restart:
    jenkins.exe restart

    【讨论】:

      【解决方案6】:

      在 Windows 上,如果您将其安装为服务,请转到服务(开始运行services.msc), 找到Jenkins,右键→重启

      如果没有帮助(UI 没有响应)打开 Windows 任务管理器 → 进程,杀死 java.exe 进程,然后再次重新启动服务。

      【讨论】:

      • 试图在windows上到达/safeRestart会导致:javax.servlet.ServletException: hudson.lifecycle.RestartNotSupportedException: Default Windows生命周期不支持重启。
      • /safeRestart不可用时,手动重启前使用/safeExit
      【解决方案7】:

      如果您在 Mac OS X 上运行 Jenkins,那么您可以通过执行以下命令手动停止服务:

      sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
      

      【讨论】:

      • 您可以使用load重新启动
      【解决方案8】:

      这也可以使用Jenkins CLI

      java -jar jenkins-cli.jar -s http://[jenkins-server]/ restart
      

      http://[jenkins-server]/cli 上提供了 jenkins-cli.jar 文件以及完整的命令列表。

      【讨论】:

        【解决方案9】:

        您有很多手动重启 Jenkins 的选项,但主要有两个(URL 或命令行):

        • 备选方案 1: 使用 Jenkins 安装 URL:

          Jenkins_URL/restart

          示例:http://jenkinsserver.com/restart

          这种类型的重新启动会强制重新启动,而无需等待构建完成。

          如果您需要等待可以使用的作业结束:

          Jenkins_URL/safeRestart

          示例:http://jenkinsserver.com/safeRestart

        • 备选方案 2:使用命令行,具体取决于您的 Jenkins 安装。

          • 如果您使用 rpmdeb 软件包进行安装,或者您在 Red Hat 中安装了 Jenkins, UbuntuDebian,您可以使用以下命令:

          • sudo service jenkins restart

            这一步重启 Jenkins。

          • sudo service jenkins stopsudo service jenkins start

            这会在两个陡峭的地方重新启动 Jenkins。

            注意:如果需要查看Jenkins状态,可以使用这个命令:sudo service jenkins status

          • 如果你使用的是CentOS,你可以使用这个命令:

            sudo systemctl restart jenkins
            

            注意:如果需要查看Jenkins状态,可以使用这个命令:sudo systemctl status Jenkins

        【讨论】:

          【解决方案10】:

          如果你只想重新加载配置文件,可以这样做

              <jenkins_url>/reload
          

          如果您对配置文件进行了一些小的更改,例如直接在文件系统中的config.xml 或通过文件系统(而不是通过浏览器)复制作业,这会更快。

          【讨论】:

            【解决方案11】:

            这取决于 Jenkins 是如何启动的。

            • 作为服务:sudo service jenkins restartsudo /etc/init.d/jenkins restart

            • 作为 Tomcat 安装中的 Web 应用程序:重新启动 Tomcat,或仅重新启动 Tomcat 中的应用程序。转至http://&lt;tomcat-server&gt;:8080/manager/list 或认证后​​点击http://&lt;tomcat-server&gt;:8080/manager/stop?path=/myapp+ http://&lt;tomcat-server&gt;:8080/manager/start?path=/myapp

            • 仅使用 java -jar 启动:杀死它 (kill -9 &lt;pid&gt;),然后重新启动它。

            • java -jar 发起,但来自主管:supervisorctl restart jenkins

            【讨论】:

            • 只选择你用例很好的答案!
            • 我们可以使用这些选项来自动识别jenkins是否没有响应并且在它没有响应时可以重新启动吗?
            【解决方案12】:

            在 Windows 上

            进入Jenkins安装,打开cmd运行:

            • 停止:

               jenkins.exe stop
              
            • 开始:

               jenkins.exe start
              
            • 重启:

               jenkins.exe restart
              

            【讨论】:

              【解决方案13】:

              使用the command line interface:

              java -jar jenkins-cli.jar -s http://jenkins.example.com:8080/ -i /root/.ssh/id_rsa safe-restart
              

              【讨论】:

                【解决方案14】:

                有时会有一些陈旧的 Jenkins 进程,所以ps -ef | grep jenkins 将它们全部杀死。按照前面的答案重启,就干净了。

                ps -ef | grep jenkins
                sudo kill -kill <pid>
                

                【讨论】:

                  【解决方案15】:

                  如果您在 FreeBSD(OS) 中运行 Jenkins:

                  /usr/local/etc/rc.d/jenkins restart
                  

                  【讨论】:

                    【解决方案16】:

                    如果您可以在网络浏览器中访问它,只需添加/restart,例如localhost:8080/restart

                    如果您将其作为服务运行,则登录到您的服务器并执行命令:

                    sudo service jenkins stop/start
                    

                    【讨论】:

                      【解决方案17】:

                      Mac 版

                      停止詹金斯

                      sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
                      

                      启动 Jenkins

                      sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
                      

                      【讨论】:

                        【解决方案18】:

                        使用浏览器手动重启 Jenkins:

                        输入您的www.jenkins-ip/restart (例如,http://localhost:8080/restart)在浏览器中。 Jenkins会在重启后自动重启并加载登录页面。

                        【讨论】:

                          【解决方案19】:

                          JenkinURL/restart 会重新启动。


                          /usr/local/etc/rc.d/jenkins restart
                          

                          【讨论】:

                          • 但是/usr/local/etc/rc.d/jenkin 不是 URL(?)。你能详细说明一下吗?
                          【解决方案20】:

                          从终端:

                          sudo service jenkins restart
                          

                          jenkinsurl/restart

                          【讨论】:

                            【解决方案21】:

                            一些人提到如果 Jenkins 没有作为独立运行,则需要重新启动 servlet 容器。但是 Tomcat(或正在使用的)不需要重新启动。如果 Jenkins 重启被挂起,Tomcat 可以强制重启 Jenkins 上下文。

                            但要解决另一条评论,当您将 Jenkins 置于“关闭”模式时,它实际上不会关闭。它会阻止新作业的执行,并在系统页面上放置一个巨大的红色横幅,这样每个人都知道管理员最终想要取消它。在所有构建完成后,有一些插件可以触发该上下文的 servlet 容器重启。

                            另一种方法是等到最后一个运行的作业完成,然后从容器中手动启动 Jenkins(或通过其他人提到的用于独立 Jenkins 安装的命令行选项)。

                            【讨论】:

                              【解决方案22】:

                              如果部署为war文件,则重启应用服务器,例如Tomcat。

                              【讨论】:

                                【解决方案23】:

                                对于CentOS

                                sudo systemctl restart jenkins
                                
                                sudo systemctl status Jenkins
                                

                                Jenkins 将在某个 PID 上处于活动状态并启动并运行。

                                【讨论】:

                                  【解决方案24】:

                                  如果它在 Docker 容器中,您只需重新启动容器即可。假设容器名称是jenkins,那么你可以这样做:

                                  docker restart jenkins
                                  

                                  或者

                                  docker stop jenkins
                                  docker start jenkins
                                  

                                  【讨论】:

                                  • 重要!在 docker 上 - Jenkins 数据必须是持久的(你可能会丢失正在运行的作业、资源、构建、数据等......)因此要小心,你最好不要使用“重启”,并且在 docker 映像上使用停止和启动。解决方案是: sudo docker ps -> sudo docker stop -> sudo docker start
                                  【解决方案25】:

                                  浏览http://[jenkins-server-url]/updateCenter/ 只需检查“重启詹金斯”

                                  【讨论】:

                                    【解决方案26】:

                                    窗口

                                    运行services.msc并重启:

                                    【讨论】:

                                      【解决方案27】:

                                      试试下面的。它对我有用。

                                      sudo service jenkins status  
                                      

                                      它会给你 Jenkins 的 PID。现在做一个

                                      kill -15 [PID]
                                      
                                      sudo service jenkins start
                                      

                                      【讨论】:

                                      • 想知道为什么你不只是执行“(sudo) service jenkins restart”?
                                      • 是的,绝对正确,但我遇到了问题,有时它对我不起作用。
                                      【解决方案28】:

                                      如果您没有权限或直接访问命令行,您可以执行例如以下之一:

                                      1. 使用 shell/batch 步骤创建一个作业,将触发从 Jenkins 安装文件夹重新启动
                                      2. 在检查“安装后重新启动”时安装/更新某些插件(至少这在旧版本中有效)

                                      以上都是 hack,但我在一个非常受限的环境中积极使用它们,没有人希望我重新启动 Jenkins,呵呵。

                                      【讨论】:

                                        【解决方案29】:

                                        如果您在 Windows 机器上将 Jenkins 作为服务器运行,请打开任务管理器并切换到服务选项卡。搜索 Jenkins 并重新启动它。

                                        【讨论】:

                                          【解决方案30】:

                                          如果没有任何效果,则通过

                                          找到 Jenkins 进程
                                          ps aux | grep java
                                          

                                          然后杀死它:

                                          kill -9 [PID]
                                          
                                          sudo service jenkins start
                                          

                                          编辑:查找与jenkins相关的java进程

                                          【讨论】:

                                          • 只搜索java进程很危险,你不觉得吗?应该 grep 寻找更多 jenkins 特定 imo 的东西。
                                          猜你喜欢
                                          • 1970-01-01
                                          • 2013-10-21
                                          • 2023-04-08
                                          • 2015-07-01
                                          • 2019-10-30
                                          • 1970-01-01
                                          • 2018-05-22
                                          • 1970-01-01
                                          • 1970-01-01
                                          相关资源
                                          最近更新 更多