次のコードの目的は、JBossの状態を確認することです。 whileループは、JBoss状態が「DOWN」状態に達するまで繰り返されます。 `スクリプトの実際のパスの代わりに使用できるように適切な環境変数に設定し、スクリプトがあります。
$ JBOSS_ROOT=/opt/app/jboss/jboss.sh
スクリプト
time=1
while [ $JBOSS_ROOT status | egrep -nq "DOWN" ]
do
echo "JBoss stooping, please wait ......."
sleep 1m
if [ $time -gt 6 ]
then
echo "Something went wrong.. it's been running more than 5 \
minutes, please check JBoos server log and deployments"
exit
fi
time=$(expr "$time" + 1)
done
echo "JBoss stopped"
`
$JBOSS_ROOT status
JBossが下(停止位置)にある場合は、「JBoss DOWN」が返されます。$JBOSS_ROOT status
JBossが実行されている場合(開始位置)、「JBoss(pid:32627)is RUNNING」を返します。
whileループでエラーが発生します。言う./stop.sh: line 5: [: missing
] ''。
答え1
形式が正しくありません。この試み:
while $JBOSS_ROOT status | grep -Enq "DOWN"
do
...
done
ここでは必要ではなく、[ ]
動作しません。これはテストにのみ使用されます。