Bonjour
Un script tourne en permanence sur ma distribution. Celui-ci se connecte toutes les 10 minutes sur une url distante, et récupère le titre de la page. Je simplifie mon code:
while true;
do
sleep 600
lynx -source -connect_timeout=10 -cache=0 [www.google.fr] | grep -qi "<title>Google"
if [ $? == 0 ]
then
echo
echo "Accès google OK"
else
killall lynx
echo "échec !"
fi
done
Problème: de temps en temps, le script "bloque" ( de quelques minutes à plusieurs heures ) sur cette partie:
lynx -source -connect_timeout=10 -cache=0 [www.google.fr] | grep -qi "<title>Google"
je pensais que le "-connect_timout=10" devait régler ce genre de problème, mais vraisemblablement ce n'est pas le cas.
Que me conseillez-vous ?
un début de solution:
lynx -source -connect_timeout=10 -cache=0 [www.google.fr] | grep -qi "<title>Google" &
sleep 5
if [ $? == 0 ]
then
echo "Accès google OK"
else
killall lynx
echo "échec !"
fi
mais "$?" aura la valeur de retour du sleep, n'est-ce pas ? et d'ailleurs "$?" peut-il seulement retourner une valeur sur un process bloqué ?
Au pire, je peux programmer un redémarrage de mon script toutes les heures via crontab, mais ce n'est pas très propre...
merci de vos conseils...
Poste le Monday 28 May 2007 17:10:34