summaryrefslogtreecommitdiffstats
path: root/repoman/bin/opengnsys.cron
blob: 3e7045790e22f696e7efdc8cb9d50c527f1091be (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
35
36
#!/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

# 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
fi