55 lines
1.5 KiB
Bash
55 lines
1.5 KiB
Bash
#!/bin/bash
|
|
# Script de ejemplo para reiniciar un ordenador
|
|
# Nota: se usa como base para el programa de reinicio de OpenGnsys Admin.
|
|
|
|
|
|
# Registrar ejecución manual de script.
|
|
case "$(ogGetCaller)" in
|
|
browser|bash) ogEcho log info "Script: $0" ;;
|
|
esac
|
|
|
|
# Cargamos el valor por defecto del tiempo de sleep
|
|
[ -z $OGSLEEP ] && source /opt/opengnsys/etc/engine.cfg
|
|
|
|
# Si se recibe un parametro sera el tiempo de sleep antes de realizar el reboot
|
|
if [ $# == 1 ] && [ "${1//[^0-9]/}" == "$1" ]
|
|
then
|
|
TIME=$1
|
|
echo "[5] Se ha introducido un retardo de $TIME segundos para reiniciar"
|
|
else
|
|
# Sin parámetros, o el parámetro introducido no es un número
|
|
TIME=${OGSLEEP:-5}
|
|
echo "[5] No se ha introducido un retardo, $TIME segundos para reiniciar"
|
|
fi
|
|
|
|
# No registrar errores.
|
|
export DEBUG="no"
|
|
|
|
# Desmontar los sistemas de archivos y la caché local.
|
|
echo "[10] Desmontar todos los sistemas de archivos."
|
|
sync
|
|
for (( i=1; i <= $(ogDiskToDev | wc -w); i++ )); do
|
|
ogUnmountAll $i &>/dev/null
|
|
done
|
|
echo "[50] Desmontar cache local."
|
|
ogUnmountCache &>/dev/null
|
|
|
|
# Volver a registrar errores.
|
|
unset DEBUG
|
|
|
|
echo "[90] Reiniciar el equipo."
|
|
# Estado correcto de Wake-On-Lan antes de reiniciar.
|
|
ethtool -s $DEVICE wol g 2>/dev/null
|
|
# Detectar Busybox.
|
|
BUSYBOX=$(which busyboxOLD)
|
|
BUSYBOX=${BUSYBOX:-"busybox"}
|
|
|
|
# Retardo para dar lugar al registro en cola de acciones.
|
|
sleep $TIME
|
|
# Parar Browser para evitar "cuelgues".
|
|
[ "$ogstatus" == "offline" ] || pkill browser
|
|
# Reiniciar.
|
|
$BUSYBOX reboot
|
|
|
|
|