Re: Timeout

Top Page

Reply to this message
Author: Tian
Date:  
To: Frédéric
CC: guilde
Subject: Re: Timeout
Bonjour,

Frédéric a écrit :
> Est-il possible, à partir d'un script shell, de faire exécuter un
> programme, et, au cas où celui-ci reste bloqué, de stopper son exécution ?
> Lui mettre un timeout externe, quoi...


Quelque chose de ce genre devrait faire l'affaire (en supposant que $COMMAND
soit la commande a executer et $TIMEOUT le temps a attendre)

timeout()
{
sleep $TIMEOUT
kill $PID >/dev/null 2>&1
}

$COMMAND &
PID=`ps --format="pid command" | grep $COMMAND | gawk '{print $1}'`
timeout PID &
fg %1



Ca suppose qu'il n'y a pas d'autres jobs lances en arriere-plan avant (sinon
il faudrait rendre plus subtil le fg pour utiliser autre chose que %1 ). Ca va
faire un kill meme si le programme est deja arrete. Mais ce n'est pas tres
grave, ca affichera juste une erreur qui est ignoree.

Bon ce n'est pas garanti non plus car je ne l'ai meme pas teste ;)

Tian.