On Monday 25 September 2006 12:37, Edgar Bonet wrote:
> Le lundi 25 septembre, Tian a écrit :
> > timeout()
> > {
> > sleep $TIMEOUT
> > kill $PID >/dev/null 2>&1
>
> kill n'enverra rien dans stdout, il suffit de rediriger stderr :
>
> kill $1 2> /dev/null
>
> > }
> >
> > $COMMAND &
> > PID=`ps --format="pid command" | grep $COMMAND | gawk '{print $1}'`
>
> Plus simplement (et probablement plus robuste) :
>
> PID=$!
>
> > timeout PID &
> > fg %1
Pas mal, comme idée. Mais pourquoi lancer la fonction timeout en tâche de
fond, puis la repasser en premier plan ? Ne peut-on pas faire directement
(en simplifiant) :
COMMAND=blablabla
TIMEOUT=60
$COMMAND &
sleep $TIMEOUT
kill -9 $! >/dev/null 2>&1
--
Frédéric
http://www.gbiloba.org