From 0b3fc2d63e3ce2cb442a7fd7f534c888469aa9eb Mon Sep 17 00:00:00 2001 From: ramon Date: Thu, 27 Feb 2014 12:31:38 +0000 Subject: #621: Mover código del ticket:621 a la rama de desarrollo. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://opengnsys.es/svn/branches/version1.0@4164 a21b9725-9963-47de-94b9-378ad31fedc9 --- repoman/bin/opengnsys.cron | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'repoman') diff --git a/repoman/bin/opengnsys.cron b/repoman/bin/opengnsys.cron index 76236f73..3e704579 100755 --- a/repoman/bin/opengnsys.cron +++ b/repoman/bin/opengnsys.cron @@ -1,18 +1,34 @@ #!/bin/bash -# Comprobamos si los servicios de opengnsys están levantado y si no es así los iniciamos. +# opengnsys.cron - Script para comprobar si los servicios de OpenGnSys están levantados +# e iniciarlos automáticamente. +# Nota: este script debe ser lanzado por Cron cada minuto. + + # Variables. OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"} LOGDIR="$OPENGNSYS/log" DEFAULTFILE=/etc/default/opengnsys +typeset -i OGCPU # % uso CPU # Comprobar servicios que deben estar activos. [ -f $DEFAULTFILE ] && source $DEFAULTFILE -# Si un servicio debe estar activo y no se está ejecutando, reiniciar OpenGnSys. -if [ "$RUN_OGADMSERVER" == "yes" -a $(pgrep ogAdmServer | wc -w) == 0 ]; then - date +"%d/%m/%Y %T ERROR: El servicio ogAdmServer estaba caido, se reinicia" >> $LOGDIR/ogAdmServer.log - /etc/init.d/opengnsys restart +# Comprobar si está activo el servidor OpenGnSys. +if [ "$RUN_OGADMSERVER" == "yes" ]; then + # Parar procesos ogAdmServer si consume más de 90% de CPU. + OGPID=$(pgrep ogAdmServer) + OGCPU=$(printf "%d" $(ps -p $OGPID -o %cpu= 2>/dev/null) 2>/dev/null) + if [ $OGCPU -gt 90 ]; then + date +"%d/%m/%Y %T AVISO: ogAdmServer (PID=$OGPID) parado, consumiendo $OGCPU % de CPU" >> $LOGDIR/ogAdmServer.log + kill -9 $OGPID + fi + # Reiniciar servicios si proceso ogAdmServer está caído. + if ! pgrep ogAdmServer >/dev/null; then + date +"%d/%m/%Y %T ERROR: El servicio ogAdmServer estaba caido, se reinicia" >> $LOGDIR/ogAdmServer.log + /etc/init.d/opengnsys restart + fi fi +# Reiniciar servicios si es repositorio y proceso ogAdmRepo está caído. if [ "$RUN_OGADMREPO" == "yes" -a $(pgrep ogAdmRepo | wc -w) == 0 ]; then date +"%d/%m/%Y %T ERROR: El servicio ogAdmRepo estaba caido, se reinicia" >> $LOGDIR/ogAdmRepo.log /etc/init.d/opengnsys restart -- cgit v1.2.3-18-g5258