如何手动重启 Jenkins?

Posted

技术标签:

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

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

如何手动重启?

【问题讨论】:

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

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

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

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

【讨论】:

safeRestart见***.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

【讨论】:

https://support.cloudbees.com/hc/en-us/articles/216118748-How-to-Start-Stop-or-Restart-your-Instance- 说重要提示:不要像 $sudo /etc/init.d/jenkins start|stop|restart 那样手动启动方法 start|stop|restart 因为它会使您的服务在启动时不可靠来自 root 用户的环境,而不是由 init 启动器(服务/systemctl)设置的干净可靠的空白环境。【参考方案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】:

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

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

以上都是 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 的东西。

以上是关于如何手动重启 Jenkins?的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins POD重启如何持久化Jenkins配置和插件

jenkins删除构建历史

Jenkins自动化部署

jenkins关闭和重启

Jenkins重试插件的使用

如何使用jenkins重启PM2?