[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