[gl-como] script

angelob1@tin.it angelob1@tin.it
Lun 9 Maggio 2011 19:20:44 CEST


Ho un problema con amule, che a volte si spegne senza motivo e altre 
volte comincia a consumare RAM fino a saturare tutto il sistema.
Ho 
quindi aggiustato come potevo due scriptini, uno per avviare e uno per 
spegnere il mulo.
Quello per avviare mi crea problemi. Ha tre scopi: 
avvia il programma; lo riavvia se crasha; lo spegne e lo riavvia se il 
consumo di RAM supera un limite prefissato. Però non funziona. Se tengo 
solo la parte di codice per controllare la RAM, funziona. Ma se 
aggiungo la parte per riavviare dopo i crash cessa di funzionare il 
controlla della RAM. Lo script è questo (le critiche sono permesse, ma 
considerate che è uno dei miei primi script):
#!/bin/sh
MULENAME=amule

MULE=`which ${MULENAME}`
MAXMEMORY=15
touch ~/.aMule/acceso.txt  #    
crea file di controllo che viene eliminato dallo script per spegnere


while true ; do
GIRA=`top -b -n 1 | awk '/ amule / {print $12 }'`   #  
controlla che sia in funzione
REALMULEMEMORY=`top -b -n 1 | awk '/ 
amule / { print $6 }' | cut -d m -f1` # memoria utilizzata
if [ -e ~/.
aMule/acceso.txt -a -z "$GIRA" ]  # se dovrebbe girare ma non gira
then

${MULE}   #   avvia 
 else     [ -n "$GIRA" -a "$REALMULEMEMORY" -gt 
"$MAXMEMORY" ]  #  se gira e la memoria usata è troppa
echo 
"$REALMULEMEMORY"
NUMAMULE=` top -b -n 1 |grep amule | cut -c 1-5 `  
#   cerca ID del processo
 kill $NUMAMULE  #   spegne il processo
sleep 
30
#20
killall -9 ${MULENAME}   # se non si è spento lo killa 
brutalmente
sleep 2
${MULE}    #    riavvia il processo
fi
sleep 20

done

Dove sbaglio?
Angelo
                                                                                                                                                       


Maggiori informazioni sulla lista gl-como