J'essaie d'exécuter automatiquement un script sans fin (afin qu'il ne renvoie pas 0 à la sortie) au démarrage sur mon serveur sans tête Ubuntu 12.04 sans interface graphique.
J'ai essayé @ redémarrer Nohup /home/luke/netup.sh & dans crontab et le script ne fonctionne pas correctement bien qu'il semble fonctionner. J'ai essayé pdate-rc.d netup.sh par défaut, le script a démarré mais ne s'est toujours pas exécuté correctement et la plupart des autres programmes supposés démarrer automatiquement ne l'ont pas démarré.
Le script tente de surveiller et d’enregistrer les pannes Internet et contient une boucle while-do. Cela fonctionne une fois connecté au serveur et démarré manuellement.
Voici le 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
Plutôt que de configurer un script pour qu'il s'exécute constamment au démarrage, pourquoi ne pas le modifier pour qu'il s'exécute à l'aide de cron? Puisque vous lui dites de dormir pendant 60 secondes entre chaque exécution, utiliser cron pour exécuter un script sans boucle while une fois par minute aurait plus de sens et serait plus simple à gérer.
Vous pourriez également être intéressé par les réponses à cette question sur serverfault:
https://serverfault.com/questions/49082/can-i-run-a-cron-job-more-frequently-than-every-minute