nekop's blog

OpenShift / JBoss / WildFly / Infinispanの中の人 http://twitter.com/nekop

シェルスクリプトでJBossの起動を待つ

2パターン書いてみた。

まずは簡易版。ログをチラ見する適当な起動判定。マッチする文字列はJBossのバージョンによって変わるかもしれない。ログしか見てないし判定もすごくゆるいので場合によっては誤動作する可能性があるけど、9割動作すればいいよ的な場合はこっちでも問題ないと思う。

while ! tail -20 $JBOSS_SERVER_LOG | grep ServerImpl | 
grep 'Started in' > /dev/null; do sleep 1; done

ちゃんとJBossのランタイムに問い合わせる版。ループでTwiddle(Javaプロセス)起動してJMX問い合わせするのでちょっともっさりする。

while ! sh twiddle.sh -u username -p password get jboss.system:type=Server Started | 
grep 'Started=true' > /dev/null ; do sleep 1; done