Centos

如何在 Systemd 上使用 Jenkins 自動重啟

  • September 4, 2017

我讓 Jenkins 在 CentOS7 上執行,它有時會崩潰,我想在發生這種情況時自動重新啟動它。Google了一下我發現在 Systemd 上你可以使用 Restart=on-failure 但問題是從我看到的詹金斯不使用服務文件。

如果我做 systemctl status 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知道在這種情況下如何使用它嗎?

作為一個完全可怕的 kluge,您可以指向systemdjenkins 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 中包含對 systemd 的直接支持……

引用自:https://serverfault.com/questions/760552