アプリインスタンスが起動したことを認識するシェルスクリプトを取得しようとしています。そうすれば、コマンドの発行を続行できます。
私はそれがこのようなものになるだろうと思っていました:
#/bin/bash
startApp.sh
while [ `tail -f server.log` -ne 'regex line indicating success' ]
do
sleep 5
done
echo "App up"
しかし、これがうまくいったとしても、いくつかの懸念に対処することはできません。
- アプリが起動しない場合、どのくらい待機しますか
- アプリの起動時にエラーが発生した場合はどうなりますか
- ログラインをキャプチャしてエコーするにはどうすればよいですか
私は近くにいますか、それとももっと良い方法がありますか?これは他の管理者が克服しなければならなかったことだと思います。
編集:
私はこれをスーパーユーザーで見つけました
https://superuser.com/questions/270529/monitoring-a-file-until-a-string-is-found
tail -f logfile.log | while read LOGLINE
do
[[ "${LOGLINE}" == *"Server Started"* ]] && pkill -P $$ tail
done
これに関する私の唯一の問題は、それが決して終了しないかもしれないということです。最大時間を追加する方法はありますか?