source: client/shared/bin/poweroffconf @ 7059c45

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 7059c45 was 5bfead0, checked in by ramon <ramongomez@…>, 8 years ago

#730: Sustitución del nombre del proyecto en el resto de ficheros del cliente.

git-svn-id: https://opengnsys.es/svn/branches/version1.1@5389 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 3.2 KB
Line 
1#!/bin/bash
2#/**
3#@file     poweroffconf
4#@brief    Control de parada tras tiempo de inactividad para ahorro de energía.
5#@param    int_minutos    Minutos de inactividad (opcional); "no" para deshabilitar..
6#@note     La comprobación periódica debe ejecutarse en el "cron" del sistema.
7#@note     Fichero de configuración: /etc/poweroff.conf
8#@author   Ramón Gómez - Univ. Sevilla
9#@date     2011-10-25
10#@version  1.0.5: incluir opción para deshabilitar ahorro de energía.
11#@author   Ramón Gómez - Univ. Sevilla
12#@date     2014-02-07
13#@warning  License: GNU GPLv3+
14#*/
15
16
17# Variables generales.
18OPENGNSYS=${OPENGNSYS:-/opt/opengnsys}  # Instalación de OpenGnsys
19OGETC=${OGETC:-$OPENGNSYS/etc}          # Configuración de OpenGnsys
20POWEROFFCONF=/etc/poweroff.conf         # Configuración del script
21
22# Error si no existe el fichero de configuración de ahorro de energía.
23if [ ! -f $POWEROFFCONF ]; then
24    ogRaiseError $OG_ERR_NOTFOUND "$POWEROFFCONF"
25    exit $?
26fi
27# Obtener parámetros de configuración de ahorro de energía.
28source $POWEROFFCONF
29export TZ
30
31case $# in
32    0)  # Sin parámetros, comprobar que existe la variable POWEROFFSLEEP.
33        if [ -z "$POWEROFFSLEEP" ]; then
34             ogRaiseError $OG_ERR_FORMAT "Sin tiempo de espera."
35             exit $?
36        fi
37        ;;
38    1)  # Nuevo timepo de espera.
39        POWEROFFSLEEP="$1"
40        # Se deshabilita si se introduce la cadena "no" como tiempo de espera.
41        [ "$POWEROFFSLEEP" == "no" ] && POWEROFFSLEEP=
42        # Error si tiempo de espera no es nulo o entero positivo.
43        if [[ ! "$POWEROFFSLEEP" =~ ^[0-9]*$ ]]; then
44            ogRaiseError $OG_ERR_FORMAT "Parámetro debe ser núm. minutos o \"no\" para deshabilitar."
45            exit $?
46        fi
47        # Actualizar fichero de configuración con nuevo periodo de parada.
48        perl -pi -e "s/POWEROFFSLEEP=.*/POWEROFFSLEEP=$POWEROFFSLEEP/" $POWEROFFCONF
49        # Si se necesita, recalcular tiempo de parada.
50        if [ -n "POWEROFFTIME" ]; then
51            # Asignar tiempo de apagado si no está deshabilitado y actualizar fichero.
52            POWEROFFTIME=${POWEROFFSLEEP:+$(date --date="$POWEROFFSLEEP min" +"%H%M")}
53            perl -pi -e "s/POWEROFFTIME=.*/POWEROFFTIME=$POWEROFFTIME/" $POWEROFFCONF
54        fi
55        exit 0 ;;
56    *)  # Error de formato de ejecución.
57        ogRaiseError $OG_ERR_FORMAT "Formato: $0 [int_minutos | no]"
58        exit $? ;;
59esac
60# Comprobar si hay algún script en ejecución (verificando compatibilidad de "pgrep").
61[ -n "$(pgrep -fa 2>&1 | grep "invalid")" ] && PGREP="pgrep -fl" || PGREP="pgrep -fa"
62if [ -n "$($PGREP $OPENGNSYS | egrep -v "$OGETC|$0")" ]; then
63    # Eliminar tiempo de inicio de espera, si se está ejecutando operación.
64    perl -pi -e 's/POWEROFFTIME=.*$/POWEROFFTIME=/' $POWEROFFCONF
65else
66    # Si el sistema está en estado de espera, ...
67    NOW=$(date +"%H%M")
68    if [ -z "$POWEROFFTIME" ]; then
69        # Asignar tiempo de inicio, si no estaba definido.
70        POWEROFFTIME=$(date --date="$POWEROFFSLEEP min" +"%H%M")
71        perl -pi -e "s/POWEROFFTIME=.*$/POWEROFFTIME=$POWEROFFTIME/" $POWEROFFCONF
72    else
73        # Apagar el equipo si se sobrepasa el periodo de espera.
74        if [ $NOW -ge $POWEROFFTIME ]; then
75            $OPENGNSYS/scripts/poweroff
76        fi
77    fi
78fi
79
Note: See TracBrowser for help on using the repository browser.