ChatGPT解决这个技术问题 Extra ChatGPT

如何手动重启 Jenkins?

这个问题的答案是社区的努力。编辑现有答案以改进这篇文章。它目前不接受新的答案或交互。

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

如何进行手动重启?

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

r
rogerdpack

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

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

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


对于 safeRestart,请参阅 stackoverflow.com/a/15555339/260122 java -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 服务而不是命令行。
詹金斯是否有任何内部链接可以做到这一点,而不是记住魔术网址?
这在 web gui 中不可用吗?
K
KarSho

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


T
Timo Tijhof

在 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 用户那里获取环境,而不是到由初始化启动器(服务/systemctl)设置的干净可靠的空白环境。
r
rogerdpack

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

https://i.stack.imgur.com/vz1tj.png


我经常将此功能用于插件安装。
奇怪的是,默认情况下不包含此插件。
V
Varun

以下命令在 Red Hat Linux 中适用于我,也适用于 Ubuntu。

了解 Jenkins 的状态: sudo service jenkins status

启动 Jenkins: sudo service jenkins start

停止 Jenkins: 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 安装目录。分别执行以下命令:

停止:jenkins.exe stop 启动:jenkins.exe start 重新启动:jenkins.exe restart


P
Peter Mortensen

在 Windows 上,如果您将其安装为服务,请转到 Services (StartRun: services.msc),找到 Jenkins,右键单击 → Restart

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


尝试在 Windows 上访问 /safeRestart 将导致:javax.servlet.ServletException: hudson.lifecycle.RestartNotSupportedException: 默认 Windows 生命周期不支持重新启动。
/safeRestart 不可用时,请在手动重新启动之前使用 /safeExit
J
Javier C.

您有很多手动重启 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、Ubuntu 或 Debian 中安装了 Jenkins,则可以使用以下命令: 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

如果您使用 rpm 或 deb 包进行安装,或者您在 Red Hat、Ubuntu 或 Debian 中安装了 Jenkins,则可以使用以下命令:

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


P
Peter Mortensen

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

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

然后您可以使用 load 重新启动
P
Peter Mortensen

这也可以使用 Jenkins CLI 来完成:

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

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


P
Peter Mortensen

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

    <jenkins_url>/reload

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


P
Peter Mortensen

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

作为服务:sudo service jenkins restart、sudo /etc/init.d/jenkins restart 等。

作为 Tomcat 安装中的 Web 应用程序:重新启动 Tomcat,或者只是重新启动 Tomcat 中的应用程序。转到 http://:8080/manager/list 或身份验证后点击 http://:8080/manager/stop?path=/myapp+ http:// :8080/manager/start?path=/myapp.

仅使用 java -jar: kill it (kill -9 ) 启动,然后重新启动它。

使用 java -jar 启动,但来自主管: supervisorctl restart jenkins


只要选择你用例很好的答案!
我们可以使用这些选项来自动识别詹金斯是否没有响应并且在它没有响应时可以重新启动吗?
P
Peter Mortensen

使用 the command line interface

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

C
Community

在 Windows 上

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

停止:jenkins.exe stop

开始:jenkins.exe 开始

重启:jenkins.exe 重启


P
Peter Mortensen

有时会有一些陈旧的 Jenkins 进程,因此 ps -ef | grep jenkins 将它们全部杀死。按照前面答案中的描述重新启动,它将是干净的。

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

D
Dev pokhariya

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

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

P
Peter Mortensen

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

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

sudo service jenkins stop/start

S
Sazzad Hissain Khan

对于 Mac

阻止詹金斯

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

启动詹金斯

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

P
Peter Mortensen

使用浏览器手动重启 Jenkins:

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


T
Trikaldarshiii

JenkinsURL/restart 将重新启动。

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

/usr/local/etc/rc.d/jenkin 不是 URL(?)。你能详细说明吗?
P
Peter Mortensen

从终端:

sudo service jenkins restart

jenkinsurl/restart


P
Peter Mortensen

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

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

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


P
Peter Mortensen

如果将其部署为 war 文件,则重新启动应用程序服务器,例如 Tomcat。


P
Peter Mortensen

对于 CentOS

sudo systemctl restart jenkins

sudo systemctl status Jenkins

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


P
Peter Mortensen

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

docker restart jenkins

或者

docker stop jenkins
docker start jenkins

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

浏览 http://[jenkins-server-url]/updateCenter/ 并检查“重新启动 jenkins”


C
Community

视窗

运行 services.msc 并重新启动:

https://i.stack.imgur.com/u4N5f.png


P
Peter Mortensen

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

sudo service jenkins status  

它会给你詹金斯的PID。现在做一个

kill -15 [PID]

sudo service jenkins start

想知道为什么您不只是执行“(sudo) service jenkins restart”?
是的,绝对正确,但我遇到了问题,有时它对我不起作用。
N
Neil

如果没有任何效果,则通过以下方式找到 Jenkins 流程

ps aux | grep java

然后杀死它:

kill -9 [PID]

sudo service jenkins start

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


仅仅搜索java进程是很危险的,你不觉得吗?应该 grep 寻找更多詹金斯特定的 imo。
P
Peter Mortensen

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

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

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


P
Peter Mortensen

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅