while 루프는 JBoss 상태가 다운되었는지 확인하고 오류를 발생시킵니다.

while 루프는 JBoss 상태가 다운되었는지 확인하고 오류를 발생시킵니다.

다음 코드의 목적은 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 statusJBoss가 아래(정지 위치)에 있으면 "JBoss DOWN"이 반환됩니다.
  • $JBOSS_ROOT statusJBoss가 실행 중인 경우(시작 위치) "JBoss(pid:32627) is RUNNING"을 반환합니다.

while 루프에서 오류가 발생합니다. 말하다 ./stop.sh: line 5: [: missing]''.

답변1

형식이 잘못되었습니다. 이 시도:

while  $JBOSS_ROOT status | grep -Enq "DOWN" 
do
    ...
done

여기서는 필요하지 않으며 [ ]작동하지 않습니다. 이는 테스트용으로만 사용됩니다.

관련 정보