CentOS に Kestrel をインストールして試す 2
環境:CentOS5.5 64bit
kestrel:2.3.2-SNAPSHOT
前回はバイナリをダウンロードしてインストールしたが今回は sbt を使ってソースからビルドする。
java 6 と sbt 0.11.2 が必須。
また、kestrel のプロセスをデーモン化する。
robey/kestrel - GitHub
https://github.com/robey/kestrel
前準備
・Java をインストールしておく。
# パスと JAVA_HOME の設定 export PATH=$PATH:/usr/local/java/bin export JAVA_HOME=/usr/local/java
・git をインストールしておく。
sbt のインストール
sbt-launch.jar とそれを実行するスクリプトを用意する。
harrah/xsbt - GitHub
https://github.com/harrah/xsbt
simple build tool
http://www.scala-sbt.org/
SBTのセットアップ.md — Gist
https://gist.github.com/1139288
1. sbt-launch.jar をダウンロードして ~/bin に置く。
(kestrel のドキュメントで指定してある 0.11.2 をダウンロードすること。
上記 のサイトからのダウンロードは現在 0.11.3-2 にリンクが貼られているがこれを使ったら build に失敗した)
$ mkdir ~/bin $ cd bin $ wget http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/0.11.2/sbt-launch.jar
2. jar を実行するコマンドを、sbt という名前のファイルに書いて ~/bin に置く。
$ vi ~/bin/sbt java -Xmx512M -jar `dirname $0`/sbt-launch.jar "$@"
3. スクリプトを実行ファイルにする
$ chmod u+x ~/bin/sbt
4. sbt を実行してREPLを起動する
$ sbt
初回なのでいろいろ必要な jar のダウンロードが行われる。
kestrel のインストール
$ cd ~ $ git clone https://github.com/robey/kestrel.git $ cd kestrel $ sbt clean update package-dist
ビルドが終わると dist/kestrel にいろいろファイルができている。
$ ls -l dist/kestrel config kestrel_2.9.1-2.3.2-SNAPSHOT.jar kestrel_2.9.1-2.3.2-SNAPSHOT-javadoc.jar kestrel_2.9.1-2.3.2-SNAPSHOT-sources.jar kestrel_2.9.1-2.3.2-SNAPSHOT-test.jar libs scripts
起動は dist/kestrel/scripts にある kestrel.sh から行うのだが
このファイルの中身を見ていると
APP_NAME="kestrel" APP_HOME="/usr/local/$APP_NAME/current"
となっているのでこれに合わせて /usr/local/kestrel/current を作成してここにコピーする。
# mkdir -p /usr/local/kestrel/current # cp -a ~/kestrel/dist/kestrel/* /usr/local/kestrel/current
pid ファイルの出力先ディレクトリを作成しておく。
# mkdir /var/run/kestrel
daemon のインストール
daemon
http://libslack.org/daemon/
# cd /usr/local/src # wget http://libslack.org/daemon/download/daemon-0.6.4.tar.gz # tar xvf daemon-0.6.4.tar.gz # cd daemon-0.6.4 # ./configure && make && make install
/usr/local/bin/daemon が作成される。
kestrel の起動 / 停止
production モードの場合は kestrel.sh を使用。
kestrel の起動
# /usr/local/kestrel/current/scripts/kestrel.sh start Starting kestrel... done.
kestrel の停止
# /usr/local/kestrel/current/scripts/kestrel.sh stop Stopping kestrel... done.
development モードの場合は devel.sh を使用。
kestrel の起動
# /usr/local/kestrel/current/scripts/devel.sh Starting kestrel in development mode...
development モードの起動スクリプト devel.sh ではデーモン化せず、jar を実行してるだけ。
追記:
snapshotではないkestrel 2.3.2以降のkestrel.shでは
daemonコマンドを使用するのではなくdisownコマンドを使ってデーモン化するにように変更された。