El Capitan にアップデートしてからJenkins が起動しなくなっていた問題の修正。
まず、ログすら残ってないので。
$ sudo chown jenkins /var/log/jenkins/
で、 launchctnl start して結果のログを見ると、こんな感じ。
前半はオプション指定が無いと言っているだけで、 jenkins.war へのパスが通っていないのがエラーの原因らしい。
The domain/default pair of (/Library/Preferences/org.jenkins-ci, war) does not exist
The domain/default pair of (/Library/Preferences/org.jenkins-ci, JENKINS_HOME) does not exist
The domain/default pair of (/Library/Preferences/org.jenkins-ci, prefix) does not exist
The domain/default pair of (/Library/Preferences/org.jenkins-ci, httpPort) does not exist
The domain/default pair of (/Library/Preferences/org.jenkins-ci, httpListenAddress) does not exist
The domain/default pair of (/Library/Preferences/org.jenkins-ci, httpsPort) does not exist
The domain/default pair of (/Library/Preferences/org.jenkins-ci, httpsListenAddress) does not exist
The domain/default pair of (/Library/Preferences/org.jenkins-ci, ajp13Port) does not exist
The domain/default pair of (/Library/Preferences/org.jenkins-ci, ajp13ListenAddress) does not exist
JENKINS_HOME=/Users/Shared/Jenkins/Home
Jenkins command line for execution:
/usr/bin/java -Dfile.encoding=UTF-8 -XX:PermSize=256m -XX:MaxPermSize=512m -Xms256m -Xmx512m -Djava.io.tmpdir=/Users/Shared/Jenkins/tmp -jar /Applications/Jenkins/jenkins.war
Error: Unable to access jarfile /Applications/Jenkins/jenkins.war
plist で指定している jenkins は
/usr/local/opt/jenkins/libexec/jenkins.war
なのに、デーモンは
/Applications/Jenkins/jenkins.war
を探しにいって、見付からないので起動に失敗しているらしい。
agentを見てみると、jenkinsが二種類登録されていて、 古い設定が使われていたままの様だった。
~ $ launchctl list|grep jenkins
– -9 homebrew.mxcl.jenkins
– 78 org.jenkins-ci
~ $ launchctl remove homebrew.mxcl.jenkins
~ $ launchctl remove org.jenkins-ci
~ $ launchctl list|grep jenkins
~ $ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
~ $ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
~ $ launchctl start homebrew.mxcl.jenkins
またログファイルの所有者がrootになってしまうので 以下の様に、改めて登録と実行。
~ $ sudo chown jenkins /var/log/jenkins/
~ $ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkinsp.list
~ $ launchctl start homebrew.mxcl.jenkins
この状態で、コマンドで起動すればJenkinsを使えるのだけれど、 デーモンとして起動しない状況は変わらず。
どうやら、 plistの値が使われず、 mac の defaultコマンドの値が使われているらしい。
~ $ defaults read ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
で、defaultを上書きしてあげる。
これで、デーモンとして jenkins が復活してくれた。