Votre navigateur est obsolète. Téléchargez un navigateur moderne, par exemple FireFox.
Léa-Linux : Forum
Le forum de Léa abrite des discussions autour des Logiciels libres.
Syndication
  • RSS ForumForum complet
  • RSS Forum - DéveloppementForum - Développement
  • RSS Forum - Développement - 323810Cette discussion

Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Important : quand vous posez une question, n'oubliez pas de nous donner les indications suffisantes pour que nous puissions répondre. En effet, la divination n'est pas le fort du Linuxien averti. Pour une meilleure compréhension, le bon usage de la grammaire et de l'orthographe est fortement encouragé. En particulier, le langage SMS est à éviter absolument. En cas d'abus, il pourra être censuré sans autre forme de procès.
Les messages dont le contenu est illégal (incitant à la haine - raciale ou autre, diffamant), ou dont le contenu est sans rapport avec le sujet du forum, ou qui sont parfaitement stupides ou hors sujet seront supprimés sans pitié. Il pourra même être fait appel au fournisseur d'accès du coupable pour faire cesser ses agissements.
» Index du forum » Développement » process bloqué
Aller à la discussion: PrécédentSuivante
Action: Nouveau sujetChercherS'authentifier
process bloqué
Auteur: kilvan (IP enregistrée)
Date: le 28 mai 2007 à 17:10

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...

Re: process bloqué
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 28 mai 2007 à 18:42

code a écrit :


lynx -source -connect_timeout=10 -cache=0 | grep
-qi "<title>Google" &
# Sauvegarde du PID
PID=$?

sleep 5

# Si le processus existe toujours, on le tue (gniark gniark gniark image : crossbonesimage : crossbonesimage : crossbones image : fou)
if [ ! -e /proc/$PID ]
then
echo "Accès google OK"
else
kill -KILL $PID
echo "échec !"
fi




Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Re: process bloqué
Auteur: kilvan (IP enregistrée)
Date: le 29 mai 2007 à 00:59

mon dieu que je suis sot image : fache


merci beaucoup !



Nom du forum : (antispam) - (en développement:saisir un texte pour le message, rempli cette zone automatiquement)
Votre nom: 
Votre email: 
Sujet: 

 
Ce forum est boosté par Phorum.