如何手动重启 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 中导致 RestartNotSupportedException
。 sudo /etc/init.d/jenkins restart
为我工作。
在 Windows 中,使用 Windows 服务而不是命令行。
是否有来自 jenkins 的内部链接来执行此操作而不是记住魔术网址?
这在 web gui 中不可用吗?【参考方案2】:
如果您安装为 rpm 或 deb,那么 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 安装。
如果您使用 rpm 或 deb 软件包进行安装,或者您在 Red Hat 中安装了 Jenkins, Ubuntu 或 Debian,您可以使用以下命令:
sudo service jenkins restart
这一步重启 Jenkins。
sudo service jenkins stop
和sudo 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 restart
、sudo /etc/init.d/jenkins restart
等
作为 Tomcat 安装中的 Web 应用程序:重新启动 Tomcat,或仅重新启动 Tomcat 中的应用程序。转至http://<tomcat-server>:8080/manager/list
或认证后点击http://<tomcat-server>:8080/manager/stop?path=/myapp
+ http://<tomcat-server>:8080/manager/start?path=/myapp
。
仅使用 java -jar
启动:杀死它 (kill -9 <pid>
),然后重新启动它。
由 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浏览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?的主要内容,如果未能解决你的问题,请参考以下文章