WebObjectsの運用 | 起動スクリプトを書く
- 2006.12.05
- WebObjects
■シンプルな起動スクリプトを作る
例えば、HelloWorld.woaの場合、run_Hello.sh という起動スクリプトを作る。
#! /bin/bash export NEXT_ROOT=/opt/WebObjects5.2.4 export PATH=/usr/jdk/j2sdk1.4.2_08/bin:$PATH cd HelloWorld.woa ./HelloWorld -WOPort 50010
ポート番号は、netstatで調べて開いているものを使う。今回は、50010番にした。
このスクリプトを作ったら、chmodして、起動する。
$ chmod 755 run_Hello.sh $ ./run_Hello.sh &
&を付けて起動したら、ちゃんと、exitしてログオフすることを忘れずに。忘れてターミナルを閉じたり、スリープに入るとアプリが落ちてしまうぞな。
ブラウザから、接続してテストする。
http://192.168.1.123:50010/
■賢い起動スクリプトを作る
上記に以下の機能を加える。
・ログを書き出す。
・ログに起動と停止の時間を書き込む。
・落ちた場合、6秒スリープした後、自動的に起動する。
#! /bin/bash export NEXT_ROOT=/opt/WebObjects5.2.4 export PATH=/usr/jdk/j2sdk1.4.2_08/bin:$PATH DIR=`pwd` LOG=${DIR}/HelloWorld.log cd ${DIR}/HelloWorld.woa while true do echo STARTUP - `date +%Y/%m/%d-%T` >> ${LOG} ./HelloWorld -WOPort 50010 >> ${LOG} 2>&1 echo SHUTDOWN - `date +%Y/%m/%d-%T` >> ${LOG} sleep 6 done
while と sleepの組み合わせがミソですな。sleepをゼロにすると、やばいアプリの場合手がつけられなくなるので、数秒スリープ時間を入れませう。
大先輩のスクリプトを自分が分かるように書き直しているうちにこういう書き方に落ち着きました。
ここで、WOPort以外の引数、たとえばメモリの量とかも指定できるのでもっともっと長いスクリプトに育てていくのもいいかと思われます。
-
前の記事
WebObjectsの運用 | メモリをたくさん割り当てる 2006.12.05
-
次の記事
Apache .htpasswdでアクセス制限(特定ユーザー) 2006.12.13