LoginSignup
0
0

More than 5 years have passed since last update.

jenkins が他のプロセスによってダウンするのを防ぐ

Last updated at Posted at 2017-01-20

背景

https://wiki.jenkins-ci.org/display/JENKINS/HudsonUbuntuLinuxStartupScript
この用に、/etc/init.d/jenkinsにinit scriptを書いて、Jenkinsをうごかしていたが、同じサーバ上で他のプロセスがMemoryを使ったときか、CPU使用率が高いときかに、勝手にダウンして、systemctl status jenkins では、Activeとなっているのに、実際には、死んでいて、Jenkinsを開こうとして初めて、Bad Gatewayとなっていた。

解決策: init.d -> systemdへ変更

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Unix+daemon を参考に、
/etc/systemd/system/jenkins.serviceをRootで作る。
ExecStartには、/etc/init.d/jenkinsの中の do_start関数内の起動している部分のスクリプトをだいたい書くことになる。daemonの部分はいらないので、注意。

[Unit]
Description=Jenkins Daemon

[Service]
ExecStart=/usr/bin/java -Djava.awt.headless=true -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080
User=jenkins
Restart=always
RestartSec=300s
Environment="JENKINS_HOME=/var/lib/jenkins"

[Install]
WantedBy=multi-user.target

だいたいこんな感じである。

Serviceの中に、ExecStartにスタートのコマンドを書く。
Restartをalwaysにすることで、落ちても勝手に再起動できる。
RestartSecは好みで決める。
EnvにJenkinsのホームを書いておかないと今までのJenkinsをちゃんと参照できない。

ハマったところ

Environment="JENKINS_HOME=/var/lib/jenkins"を書かないと、JenkinsのSecretキーを入れさせられて、全くまっさらなJenkinsが起動して、全て消えたかと思って焦った。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0