sai do shell script quando uma verificação de processo falha

0

eu preciso sair do shell script quando o processo TESTEXCHANGE não está sendo executado em um host. Como posso lidar com isso:

Eu tenho uma verificação de processo de script que verifica se o processo está sendo executado.

Chamo isso para o script MainTest. Desejo sair do script MainTest se o script ProcessCheck falhar.

cat Processcheck :

while read proc; do
        if (( 0 == $(ps -ef | grep -v grep | grep -c /location) )); then
                echo "!!!!! $proc down on Master TU  !!!!!"
                RC=1
         else
           echo "!!!!!! $proc is still running on Master TU!!!!!"
        fi
#echo "Not checked"

done < /tmp/PROCESSLIST

cat MainTest :

#!/bin/bash

cd /app/utp/bin

ssh Test@TestHost 'bash -s' < /ProcessCheck

eu quero sair daqui se a verificação de processo falhar próximos passos

    
por canonical 26.08.2015 / 17:58

1 resposta

0

Você pode usar os status de saída para lidar com seu caso. Os status Exit são valores numéricos retornados por um comando para indicar se a execução correu bem ou não. O valor padrão é 0 se foi um sucesso, um número entre [1..255] caso contrário. Cada valor tem uma significação .

Por exemplo, você pode reescrever seu Processcheck assim:

while read proc; do
        if (( 0 == $(ps -ef | grep -v grep | grep -c /location) )); then
                echo "!!!!! $proc down on Master TU  !!!!!"
                RC=1  #I'm not sure why you use this line
                EXIT_STATUS=1
         else
           echo "!!!!!! $proc is still running on Master TU!!!!!"
        fi
#echo "Not checked"

done < /tmp/PROCESSLIST
exit $EXIT_STATUS  #1 means there was an error, 0 means everything went fine

Em seu MainTest , você pode chamar Processcheck e verificar seu status procurando a variável $?

    
por Aserre 27.08.2015 / 16:04