我让Jenkins在CentOS7上运行,它有时会崩溃,当这种情况发生时,我想自动重新启动它。Googleing有点让我发现,在Systemd上,您可以使用Restart= on -failure,但问题是,从我所看到的情况来看,Jenkins并不使用服务文件。
如果我做了systemctl状态jenkins.service,我得到:
● 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吗?
发布于 2016-02-29 19:45:17
作为一个非常可怕的kluge,您可以将systemd指向jenkins init脚本,因为该脚本有一大堆烦人的“哪里是Java”和其他代码来解决如何让jenkins启动和运行。
# 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中包括对系统的直接支持。
发布于 2017-09-04 11:48:34
我可以提供systemd文件,这是对詹金斯·维基代码的修改:
[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了,并且还可以直接在日志中获取日志。
发布于 2017-01-19 15:20:51
Jenkins包仍然只带一个SysV init文件,因此系统特定行为不可用。我会引发一个bug报告,请求在包中提供一个systemd单元文件。https://issues.jenkins-ci.org/browse/JENKINS-41218
https://serverfault.com/questions/760552
复制相似问题