Bash timed execution
2009-05-22 08:05:14 UTC by maris in Linux, Skripti,Tikko savajadzējās uztaisīt check'u ar timeout'u, te mu būs piemērs kā to izdarīt no bash. Ideja diezgan vienkārša - forkojam galveno procesu backgroundā, savācam procesa pid, guļam timeout sekundes, pēc kā pārbaudma vai process joprojām ir aktīvs.
#!/bin/bash
mainproc(){
for i in `seq 1 20`
do
echo "Now in $i"
sleep 1
done
}
timeout=5
echo "Running with timeout of 5 seconds"
mainproc &
pid=$!
sleep $timeout
kill -0 $pid
if [ $? -eq 0 ]
then
echo "Process hang"
kill -9 $pid
else
echo "Process ok"
fi
Komentāri: