Enquanto o loop verifica o status do JBoss ou não, dando erro

2

A intenção do código a seguir é verificar o status do JBoss, o loop while itera até que o status do JBoss chegue ao estado 'DOWN'.     ' Eu tenho o seguinte script, que eu defini para esta variável de ambiente para que eu possa fazer uso dele, contra o caminho real para o script:

$ JBOSS_ROOT=/opt/app/jboss/jboss.sh
script
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 retorna "JBoss DOWN" se o JBoss estiver inativo (parar a posição).
  • $JBOSS_ROOT status retorna "O JBoss (pid: 32627) está EXECUTANDO" se o JBoss estiver em execução (posição inicial).

Erro de lançamento no loop while. dizendo que ./stop.sh: line 5: [: missing ] ''.

    
por Ravichandra 26.09.2014 / 12:11

1 resposta

1

Você tem o seu formato errado. Tente isso:

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

O [ ] não é necessário (e não funciona) aqui. Isso é apenas para testes.

    
por 26.09.2014 / 13:56