首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Systemd上与Jenkins一起使用自动重新启动

如何在Systemd上与Jenkins一起使用自动重新启动
EN

Server Fault用户
提问于 2016-02-29 17:51:21
回答 3查看 12K关注 0票数 2

我让Jenkins在CentOS7上运行,它有时会崩溃,当这种情况发生时,我想自动重新启动它。Googleing有点让我发现,在Systemd上,您可以使用Restart= on -failure,但问题是,从我所看到的情况来看,Jenkins并不使用服务文件。

如果我做了systemctl状态jenkins.service,我得到:

代码语言:javascript
运行
复制
● jenkins.service - LSB: Jenkins Continuous Integration Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins)
   Active: active (running) since Mon 2016-02-29 17:30:08 UTC; 11min ago

看来它还在用init.d?知道如何在这种情况下使用这个Restart=on-failure吗?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2016-02-29 19:45:17

作为一个非常可怕的kluge,您可以将systemd指向jenkins init脚本,因为该脚本有一大堆烦人的“哪里是Java”和其他代码来解决如何让jenkins启动和运行。

代码语言:javascript
运行
复制
# cat /etc/systemd/system/jenkins.service
[Unit]
Description=Jenkins Server Daemon
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/etc/init.d/jenkins start
Restart=always
RestartSec=3
Type=forking

[Install]
WantedBy=multi-user.target
# systemctl enable jenkins.service

然后服务在重新启动时启动,没有被chkconfig --list列出,即使您kill -9 $thepid (虽然理想的长期)重新启动,一个更好的选择是让詹金斯家族在他们的RPM中包括对系统的直接支持。

票数 3
EN

Server Fault用户

发布于 2017-09-04 11:48:34

我可以提供systemd文件,这是对詹金斯·维基代码的修改:

代码语言:javascript
运行
复制
[Unit]
Description=Jenkins Daemon

[Service]
SuccessExitStatus=143
ExecStart=/usr/bin/java -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8081 --ajp13Port=-1
Environment="JENKINS_HOME=/data/jenkins"
User=jenkins

[Install]
WantedBy=multi-user.target

这比通过apt安装Jenkins的@thrig在Ubuntu16.04中的效果要好得多。这样,您就不再需要/etc/init.d/jenkins和/etc/default/jenkins了,并且还可以直接在日志中获取日志。

票数 1
EN

Server Fault用户

发布于 2017-01-19 15:20:51

Jenkins包仍然只带一个SysV init文件,因此系统特定行为不可用。我会引发一个bug报告,请求在包中提供一个systemd单元文件。https://issues.jenkins-ci.org/browse/JENKINS-41218

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/760552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档