Alle lunedì 4 febbraio 2008, mortimer ha scritto:
> Davide Mancusi ha scritto:
> > mortimer ha scritto:

> ho un processo (amule) che tende (in maniera non riproducibile) a memory
> leak spaventosi, in pratica arriva ad occupare tutta la ram disponibile

Questo dovrebbe funzionare, metti i valori che vuoi in sleep e nella 
quantità di swap che vuoi tenere libera; ovviamente cambia come ti serve 
il path ai file. Non è testato nel -15 per il restart e nel wait relativo. 
Non l'ho ancora visto in funzione a causa di amule, ma tant'è, in test 
funziona. Se può aiutarti a capire perché e come amule salta fai una mail 
in lista che magari se ne viene a capo. Ogni miglioramento (facile, visto 
la mia poca dimestichezza con bash) è ben gradito.

#/bin/sh
# ricorda che

killall -15 amule
wait

swap_test=1000000

rm /home/alex/.aMule/*Lock

amule &

var1="c"

while [ "$var1" = "c" ]

do

sleep 10
prova=$(free)

echo $prova >> /home/alex/Desktop/loggo
echo ' ' >> /home/alex/Desktop/loggo


for swap_lev in $prova; do
:
done

echo "               \n/n" >> /home/alex/Desktop/loggo
echo "$swap_lev $swap_test" >> /home/alex/Desktop/loggo
echo "               \n/n" >> /home/alex/Desktop/loggo

ps -ef | grep /amule | grep -v grep >> /home/alex/Desktop/loggo

if [ $swap_lev -lt $swap_test ];then
        echo ' ' >> /home/alex/Desktop/loggo
        echo "killo" >> /home/alex/Desktop/loggo
        echo ' ' >> /home/alex/Desktop/loggo
        killall -15 amule
        wait
        rm /home/alex/.aMule/*Lock
        echo "qui rilancio: " >> /home/alex/Desktop/loggo
        prova=$(free)
        echo $prova >> /home/alex/Desktop/loggo
        cp /home/alex/Desktop/loggo /home/alex/Desktop/loggo.crash
        #swap_test=1000000
        amule &
        
fi

#((swap_test= swap_test + 100000))

prova=$(tail --bytes=12000 /home/alex/Desktop/loggo)
echo $prova > /home/alex/Desktop/loggo

done

exit 0

Rispondere a