Jenkinsで実行ユーザをjenkins以外にしている場合でアップデートするときの罠
深遠な理由でJenkinsの実行ユーザをデフォルトのjenkins以外に設定しているケースでJenkinsのアップデートを行うと嵌まりやすい罠がありました。環境はCentOS 6.3です。
sudo yum update jenkins
yumでアップデートするとパッケージは更新されるんですが起動しなくなります。
sudo /etc/init.d/jenkins start Starting Jenkins [ OK ] sudo /etc/init.d/jenkins status jenkins が停止していますが PID ファイルが残っています
なんだpidファイル残ってるのかーと /var/run/jenkins.pid を消そうとするとファイルが存在しておらず詰みます。
原因はpidファイルではなくてアップデート時に /var/log/jenkins, /var/cache/jenkins が jenkinsユーザにchownされてしまうからでした。起動スクリプト(/etc/init.d/jenkins) を読んでようやくわかりましたよ...
sudo chown -R foobar:foobar /var/cache/jenkins sudo chown -R foobar:foobar /var/log/jenkins
Jenkins自体の実行ユーザはjenkinsが無難な気がします。Jenkinsのプロジェクト内のビルド実行は普通のシェルスクリプトなので他ユーザで実行するように書けば問題ないかと!