다음 코드의 목적은 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
여기서는 필요하지 않으며 [ ]
작동하지 않습니다. 이는 테스트용으로만 사용됩니다.