blob: 32c6f4931b0c45a596a051ddf055f80b3c34a921 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#!/bin/bash
# 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
# Salir si no se debe ejecutar la revisión en el cron.
[ "$RUN_CRONJOB" == "no" ] && exit
# 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=$(top -b -n 1 -p $OGPID 2>/dev/null | awk -v p=$OGPID '$1~p {printf "%d",$9}')
if [ $OGCPU -gt 90 ]; then
date +"%d/%m/%Y %H:%M 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 %H:%M ERROR: El servicio ogAdmServer estaba caido, se reinicia" >> $LOGDIR/ogAdmServer.log
/etc/init.d/opengnsys restart
fi
fi
|