サーバーで動作を行うデーモンを、Scalaで書きます。
なお、環境はRHEL系のLinuxで動作を確認しました。それ以外のOSの方は
適宜読み替えてください。
また、ビルドなどはsbtを利用するので、「始めるsbt」などを読んでおくと
いいと思います。
1.Scalaのコードを書く
1.1 参照の追加
sbtを使ってアプリを構成します。今回、ApacheCommonDaemonを利用するので、
build.sbtに次のように参照を追加します。
1.2 Scalaのコードを書く
Daemonインターフェースを継承したクラスを書きます。
今回は次のようにしました。
一応、例外を明示的に投げるように書いておいています。
1.3 実行可能ファイルを作る
sbt-assembkyを使って実行可能なjarファイルを用意しました。
sbt-assemblyについては、こちらの記事を参照してもらえると嬉しいです。
2. jsvcのセットアップ
2.1 ソースコードをダウンロードする
http://commons.apache.org/daemon/download_daemon.cgi上記のURLから''native-src''をダウンロードします。
ビルド対象のコードはにあります。
2.2 ビルドに必要なライブラリ、ツール群をインストールする。
ApacheCommonDaemonのページによると次のツールが必要とのことです。
- GNU AutoConf (at least version 2.53)
- An ANSI-C compliant compiler (GCC is good)
- GNU Make
- A Java Platform 2 compliant SDK
yumなどを利用してインストールしましょう。
2.3 ビルド、インストールする
jsvc -help ができることを確認。
3. 起動する
起動スクリプトと終了のスクリプトを記述しました。
デーモンらしく,/etc/rc..d/init.d/以下に保存をすると
いいと思います。
4. 参考にしたWEBページなど
以下のページを参考にしました。Play framework 2.0でデーモン化する方法
始めるSBT
SBTで実行可能なjarファイルを作る
Apche Commons Daemon