I have Jenkins running on a CentOS7 and it kind of crashes from time to time and I'd like to restart it automatically when this happens. Googleing a bit I've found that on Systemd you can use Restart=on-failure but the problem is that from what I see Jenkins does not use a service file.
If I do systemctl status jenkins.service I get:
● 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
So looks like it's still using init.d? Any idea how I can use this Restart=on-failure
in this case?
As a total horrible kluge you could point
systemd
at the jenkins init script, as that script has a whole bunch of annoying "where's Java" and other code to figure out how to get jenkins up and running.and then the service starts at reboot, is not listed by
chkconfig --list
, and restarts even if youkill -9 $thepid
though ideally long-term a better option would be for the jenkins folk to include direct support for systemd in their RPM...I can offer systemd-file which is a modification of the code from the Jenkins Wiki:
That works much better than the one from @thrig on Ubuntu 16.04 with Jenkins installed via apt. This way you don't need /etc/init.d/jenkins and /etc/default/jenkins anymore and also get the logs directly in journalctl.
Jenkins packages are still shipping with only a SysV init file, so systemd specific behaviours are not available. I raise a bug report to request that a systemd unit file is shipped in the packages. https://issues.jenkins-ci.org/browse/JENKINS-41218