From c3c7cb3ae6f6600223111a572050f34f2df6fa71 Mon Sep 17 00:00:00 2001 From: ramon Date: Thu, 22 Dec 2011 13:38:11 +0000 Subject: Congelar versión 1.0.2 en tags/opengnsys-1.0.2 (modifica #446). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://opengnsys.es/svn/tags/opengnsys-1.0.2@2405 a21b9725-9963-47de-94b9-378ad31fedc9 --- client/shared/bin/poweroffconf | 59 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 client/shared/bin/poweroffconf (limited to 'client/shared/bin/poweroffconf') diff --git a/client/shared/bin/poweroffconf b/client/shared/bin/poweroffconf new file mode 100755 index 00000000..c4813e34 --- /dev/null +++ b/client/shared/bin/poweroffconf @@ -0,0 +1,59 @@ +#!/bin/bash +#/** +#@file poweroffconf +#@brief Control de parada tras tiempo de inactividad para ahorro de energía. +#@param int_minutos Minutos de inactividad (opcional). +#@note La comprobación periódica debe ejecutarse en el "cron" del sistema. +#@note Fichero de configuración: /etc/poweroff.conf +#@author Ramón Gómez - Univ. Sevilla +#@date 2011-10-25 +#@warning License: GNU GPLv3+ +#*/ + + +# Variables generales. +OPENGNSYS=${OPENGNSYS:-/opt/opengnsys} # Instalación de OpenGnSys +OGETC=${OGETC:-$OPENGNSYS/etc} # Configuración de OpenGnSys +POWEROFFCONF=/etc/poweroff.conf # Configuración del script +source $POWEROFFCONF + +case $# in + 0) # Sin parámetros, comprobar que existe la variable POWEROFFSLEEP. + if [ -z "$POWEROFFSLEEP" ]; then + ogRaiseError $OG_ERR_FORMAT "Sin tiempo de espera." + exit $? + fi + ;; + 1) #TODO Comprobar que el parámetro es entero positivo. + # Nuevo timepo de espera. + POWEROFFSLEEP=$1 + perl -pi -e "s/POWEROFFSLEEP=.*/POWEROFFSLEEP=$POWEROFFSLEEP/" $POWEROFFCONF + # Si se necesita, recalcular tiempo de parada. + if [ -n "POWEROFFTIME" ]; then + POWEROFFTIME=$(date --date="$POWEROFFSLEEP min" +"%H%M") + perl -pi -e "s/POWEROFFTIME=.*/POWEROFFTIME=$POWEROFFTIME/" $POWEROFFCONF + fi + exit 0 ;; + *) # Error de formato de ejecución. + ogRaiseError $OG_ERR_FORMAT "Formato: $0 [int_minutos]" + exit $? ;; +esac +# Comprobar si hay algún script en ejecución. +if [ -n "$(pgrep -fl $OPENGNSYS | egrep -v "$OGETC|$0")" ]; then + # Eliminar tiempo de inicio de espera, si se está ejecutando operación. + perl -pi -e 's/POWEROFFTIME=.*$/POWEROFFTIME=/' $POWEROFFCONF +else + # Si el sistema está en estado de espera, ... + NOW=$(date +"%H%M") + if [ -z "$POWEROFFTIME" ]; then + # Asignar tiempo de inicio, si no estaba definido. + POWEROFFTIME=$(date --date="$POWEROFFSLEEP min" +"%H%M") + perl -pi -e "s/POWEROFFTIME=.*$/POWEROFFTIME=$POWEROFFTIME/" $POWEROFFCONF + else + # Apagar el equipo si se sobrepasa el periodo de espera. + if [ $NOW -ge $POWEROFFTIME ]; then + $OPENGNSYS/scripts/poweroff + fi + fi +fi + -- cgit v1.2.3-18-g5258