Rechercher : dans
Par :

Aide sur scripting shell - option timeout

Dernière réponse le 23 oct 2007 à 16:37:33 weshweshpopo, le 23 oct 2007 à 15:19:08 
 Signaler ce message aux modérateurs

Bonjour,

J'ai besoin d'utiliser une option de timeout dans un script unix en shell.

Voici un bout de mon script :

        if test -n "$SENDER"
        then
                CONNEXION="/usr/local/bin/ssh -n $SENDER -l root /bin/rsh $IP"
        else
                CONNEXION="/usr/local/bin/ssh -n $IP -l root"
        fi


Je souhaite indiquer que si la commande met plus de 10 secondes pour s'executer alors je fais
echo "prout"


Merci.
Configuration: Windows XP
Firefox 2.0.0.8

Meilleures réponses pour « aide sur scripting shell option timeout » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...

1

 jipicy, le 23 oct 2007 à 16:37:33

Salut,

Y'a aucune commande dans ton bout de script susceptible de mettre + de 10 secondes à s'exécuter, c'est pas le test de l'existence d'un utilisateur (ou autre) et l'affectation d'une variable qui va mettre tout ce temps...

C'est tout le bloc que tu qualifies de commande ?

Voilà un petit script susceptible de faire ce que tu veux, adapte à ton cas :

#!/bin/bash

# on regroupe les commandes entre parenthèses
(
# on conditionne la création d'un fichier que si
#+ la commande précédente a renvoyé un code retour égal à 0 (vrai)
sleep $1  && touch blabla
) &     # on lance les commandes précédentes en arrière-plan (&)
sleep 5 # on fait une pause
# si le fichier "blabla" n'existe pas c'est que la commande
#+ précédente n'a pas abouti
if [ ! -f blabla ]
# donc on le dit
then echo "Prout"
# on tue la tâche en arrière-plan
kill $!
# sinon on efface le fichier créé
else rm -f blabla
fi
;-))

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy