Como iniciar um script sem fim na inicialização

3

Eu estou tentando executar automaticamente um script sem fim (para que ele não retorne 0 na saída) na inicialização do meu servidor 12.04 sem o ubuntu sem GUI.

Eu tentei @reboot nohup /home/luke/netup.sh & amp; no crontab e o script não funciona corretamente, embora pareça ser executado. Eu tentei update-rc.d netup.sh defaults , o script foi iniciado mas ainda não foi executado corretamente e a maioria dos outros programas que deveriam iniciar automaticamente não foi iniciada.

O script tenta monitorar e registrar interrupções na Internet e contém um loop while-do. Funciona quando logado no servidor e iniciado manualmente.

Aqui está o script

#!/bin/bash
#
# Script to monitor internet up time

echo "Server started"  'date "+%F  %T"'  >> /home/luke/netup.log

START=0

while [ 1 ] ; do                    # continuous loop

#------------------------------------------------------------------------
/bin/ping -q 8.8.8.8 -c1 1>/dev/null 2>/dev/null # ping test
PING=$?
#------------------------------------------------------------------------

if [ $PING = 0 ]; then              # ping success
    if [ $START -ne 0 ]; then       # was down
        END=$(date +%s)
        TIME=$(($END - $START))
        START=0
        let TIME=($TIME/60)     #convert seconds to minutes
        echo "Failed" $FAIL_TIME "for" $TIME "minutes" >> /home/luke/netup.log

    fi

else                        # ping failure
    if [ $START -eq 0 ]; then       # was up
        START=$(date +%s)
        FAIL_TIME=$(date "+%F  %T")
    fi

fi

#------------------------------------------------------------------------
if [ $PING = 0 ]; then              # wait

    sleep 60
else
    sleep 10
fi

done
    
por Luke 05.09.2012 / 15:09

1 resposta

0

Em vez de configurar um script para ser executado constantemente na inicialização, por que não alterá-lo para executar usando o cron? Como você está dizendo para ele dormir por 60 segundos entre as execuções, usar o cron para executar um script sem loop while uma vez por minuto faria mais sentido e seria mais simples de gerenciar.

Você também pode estar interessado nas respostas para essa pergunta no serverfault:

link

    
por ImaginaryRobots 05.09.2012 / 19:19