Aide sur scripting shell - option timeout

Fermé
weshweshpopo - 23 oct. 2007 à 15:19
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 23 oct. 2007 à 16:37
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.
A voir également:

1 réponse

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
23 oct. 2007 à 16:37
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
;-))
0