手動で起動
alias jenkins_server='java -jar /usr/local/opt/jenkins/libexec/jenkins.war --httpPort=8081'
上記のようなaliasを切って手動で起動していたが、時々忘れるのでデーモン化してみた。
※ポートは8081にカスタマイズ。
デーモン化
brew infoで情報取得
-> % brew info jenkins
jenkins: stable 1.541, HEAD
http://jenkins-ci.org
/usr/local/Cellar/jenkins/1.541 (5 files, 188M) *
Built from source
From: https://github.com/mxcl/homebrew/commits/master/Library/Formula/jenkins.rb
==> Caveats
Note: When using launchctl the port will be 8080.
To have launchd start jenkins at login:
ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
Then to load jenkins now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
Or, if you don't want/need launchctl, you can just run:
java -jar /usr/local/opt/jenkins/libexec/jenkins.war
言われた通り実行してみる
-> % ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
-> % launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
が、mvnのパスが通ってない、日本語が化ける、色々と問題あり。
手動で起動していた場合は、ユーザが設定した環境変数がそのまま渡るが、デーモン化すると上手く渡らない模様。
環境変数を渡す
ググッてみた所、
/etc/launchd-user.conf
や
/etc/launchd.conf
をいじればいいとのこと、実際にやってみるが何故か渡らない。
試行錯誤の末、最終的に
~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
をカスタマイズすることで解決した。
差分はこんな感じ
-> % diff homebrew.mxcl.jenkins.plist homebrew.mxcl.jenkins.plist.org
5,13d4
< <key>EnvironmentVariables</key>
< <dict>
< <key>PATH</key>
< <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin/:/opt/X11/bin</string>
< <key>JAVA_TOOL_OPTIONS</key>
< <string>-Dfile.encoding=UTF8</string>
< <key>MAVEN_OPTS</key>
< <string>-Djava.awt.headless=true</string>
< </dict>
23d13
< <string>--httpPort=8081</string>
コメント
・PATH
mvnにパスを通すため。
export PATH=/usr/local/bin:$PATH
のように展開させたかったが出来なかった。
あと、/etc/paths
もなぜか無視される。
・JAVA_TOOL_OPTIONS
-Dfile.encoding=UTF8
: 日本語の文字化け対応
・MAVEN_OPTS
-Djava.awt.headless=true
: mvn起動時に変なコーヒーカップのウィンドウが立ち上がるのを防ぐ
・その他
~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
はカスタマイズしたので、念のためシンボリックリンクじゃなくてコピーを取っておいたほうがいいと思います。