Trac Lightning に含まれている Jenkins の Windows サービスが動かない

Trac Lightning に含まれている Jenkins は、[Jenkins の管理] - [Windows のサービスとしてインストール] のページから Windows サービスをインストールできるんですけど、インストールに成功した後 Jenkins をブラウザで開くとエラーになってしまいます。サービスは開始したし、開始してから時間もじゅうぶん経過しているのに。


軽くネットで調べてみたら、id:nakaji999 さんのブログで情報を発見。

私も「Jenkinsを再起動しますので、しばらくお待ちください。」から全然画面が更新されませんでした。

原因はバッチファイルから起動した時のポートが8010なのに対して、サービス登録した時のポートは8080になっているからのようです。

TracLightningのhudson(jenkins)をサービス起動する - タイトルは未定

サービスで動かしたときと、バッチファイルで動かしたときでは、ポートが違うみたいですね。


ひとまず今回は、バッチファイルに書かれてる引数を jenkins.xml に書くという力技で対処しておきます。

<service>
  <id>jenkins</id>
  <name>Jenkins</name>
  <description>This service runs Jenkins continuous integration system.</description>
  <env name="JENKINS_HOME" value="%BASE%"/>
  <!--
    if you'd like to run Hudson with a specific version of Java, specify a full path to java.exe.
    The following value assumes that you have java in your PATH.
  -->
  <executable>java</executable>

  <!-- バッチファイルに書かれてる引数と同じ内容を記述 -->
  <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --prefix=/jenkins --ajp13Port=8009 --ajp13ListenAddress=127.0.0.1 --httpListenAddress=127.0.0.1 --httpPort=8010</arguments>

  <!--
    interactive flag causes the empty black Java window to be displayed.
    I'm still debugging this.
  <interactive />
  -->
  <logmode>rotate</logmode>
</service>