Por que meus scripts estão morrendo?

0

Observação1

logic.sh

#!/bin/bash
#get system metrics
#do stuff and echo it
echo "put metrics" | nc $ip $port
echo "Metrics $metrics"

run_logic.sh

#!/bin/bash
while true;do
  sh logic.sh >> test.log 2>&1 &
  sleep 60
done

start_logic.sh

#!/bin/bash
case $1 in
  start)
       #start the run_logic.sh
       ;;
   stop)
      #stop the run_logic.sh
      ;;
    *)
     echo "Invalid Option!"
     exit 1
esac
exit0

Observação2

logic.sh

#!bin/bash
while true;do
  #do stuff and echo it
  #get System Metrics and put it
  echo $stuff
  sleep 60
done

start_logic.sh

#!/bin/bash
case $1 in
  start)
       #do some stuff, check already started or not
       sh logic.sh >> test.log 2>&1 &
       ;;
   stop)
      #do some stuff
      #Kill the process
      ;;
    *)
     echo "Invalid Option!"
     exit 1
esac
exit0

Agora !, Na observação1, os scripts estão morrendo no meio da execução. Eu verifiquei os logs, mas não vi nenhuma mensagem de erro. Na observação2, os scripts funcionam bem (99% bem!). Então, o que é diferença observação1 e observação2, por que os scripts estão morrendo no primeiro caso?

    
por Veerendra 30.11.2015 / 08:19

1 resposta

0

Na observação 1, você inicia um shell, executando logic.sh a cada 60 segundos em segundo plano ( & ). O comando usado netcat deve enviar dados para um ip / port, mas se não houver ninguém ouvindo no final remoto (tcp como padrão), ele sairá com erro.

    
por 30.11.2015 / 08:42

Tags