Compare commits
No commits in common. "main" and "1.1.3" have entirely different histories.
|
@ -5,12 +5,6 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.2.0] - 2025-08-26
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed init bash files
|
||||
|
||||
## [1.1.3] - 2025-08-08
|
||||
|
||||
### Fixed
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
#!/bin/bash
|
||||
# Proceso general de arranque de OpenGnsys Client.
|
||||
|
||||
|
||||
# Fichero de registro de incidencias (en el servidor; si no, en local).
|
||||
OPENGNSYS=${OPENGNSYS:-/opt/opengnsys}
|
||||
OGLOGFILE=${OGLOGFILE:-$OPENGNSYS/log/$(ogGetIpAdderss).log}
|
||||
if ! touch $OGLOGFILE 2>/dev/null; then
|
||||
OGLOGFILE=/var/log/opengnsys.log
|
||||
fi
|
||||
LOGLEVEL=5
|
||||
|
||||
# Matando plymount para inicir browser o shell
|
||||
pkill -9 plymouthd
|
||||
|
||||
# Arranque de OpenGnsys Client daemon (socket).
|
||||
echo "${MSG_LAUNCHCLIENT:-.}"
|
||||
# Indicar fichero de teclado de Qt para el idioma especificado (tipo "es.qmap").
|
||||
[ -f /usr/local/etc/${LANG%_*}.qmap ] && export QWS_KEYBOARD="TTY:keymap=/usr/local/etc/${LANG%_*}.qmap"
|
||||
|
||||
if [ -f "/usr/share/OGAgent/opengnsys/linux/OGAgentService.py" -a "$ogstatus" != "offline" ]; then
|
||||
# Ejecutar servicio cliente.
|
||||
cd /usr/share/OGAgent
|
||||
export OGAGENTCFG_OGCORE_IP=$ogcore
|
||||
export OGAGENTCFG_OGLOG_IP=$oglog
|
||||
export OGAGENTCFG_URLMENU_SCHEME=http
|
||||
export OGAGENTCFG_URLMENU_IP=127.0.0.1
|
||||
export OGAGENTCFG_URLMENU_PORT=81
|
||||
(
|
||||
## remove bash functions and some OG vars from the agent's environment
|
||||
unset -f $(declare -F |awk '/og[A-Z]|NT[A-Z]/ { print $3 }')
|
||||
unset $(declare |awk -F= '/^MSG_|^OG_ERR_/ { print $1 }')
|
||||
python3 -m opengnsys.linux.OGAgentService fg
|
||||
)
|
||||
else
|
||||
for FILE in index $OGGROUP $(ogGetIpAddress)
|
||||
do
|
||||
[ -f $OGCAC/menus/$FILE.html ] && OGMENU="$OGCAC/menus/$FILE.html"
|
||||
done
|
||||
$OPENGNSYS/bin/launch_browser $OGMENU
|
||||
fi
|
||||
|
||||
# Si fallo en cliente y modo "admin", cargar shell; si no, salir.
|
||||
if [ "$ogactiveadmin" == "true" ]; then
|
||||
bash
|
||||
fi
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
F=/opt/opengnsys/functions
|
||||
|
||||
## BootLib.bootOs() makes a copy of grub.cfg in /boot/grub within the ESP
|
||||
## clean it up
|
||||
if $F/ogIsEfiActive; then
|
||||
ESP=$($F/ogGetEsp)
|
||||
MNTPT=$($F/ogMount $ESP)
|
||||
rm -f $MNTPT/boot/grub/grub.cfg
|
||||
$F/ogUnmount $ESP
|
||||
fi
|
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
|
||||
if grep -q pyinit=false /proc/cmdline; then
|
||||
echo "shell init"
|
||||
else
|
||||
echo "python init"
|
||||
exec /opt/opengnsys/etc/preinit.py
|
||||
fi
|
||||
|
||||
# Cargar entorno de OpenGnsys
|
||||
set -a
|
||||
source /opt/opengnsys/etc/preinit/loadenviron.sh
|
||||
|
||||
# Scripts de inicio.
|
||||
for f in cleanesp fileslinks loadmodules metadevs mountrepo poweroff filebeat otherservices; do
|
||||
source $OGETC/preinit/$f.sh
|
||||
done
|
||||
unset f
|
||||
|
||||
if [ -f $OGETC/init/$IPV4ADDR.sh ]; then
|
||||
$OGETC/init/$OG_IP.sh
|
||||
|
||||
elif [ -f $OGETC/init/$OGGROUP.sh ]; then
|
||||
$OGETC/init/$OGGROUP.sh
|
||||
|
||||
elif [ -f $OGETC/init/default.sh ]; then
|
||||
$OGETC/init/default.sh
|
||||
|
||||
else
|
||||
echo "No se ha encontrado script de inicio"
|
||||
halt
|
||||
fi
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash
|
||||
|
||||
F=/etc/filebeat/filebeat.yml
|
||||
OPENSEARCH_PORT=9200
|
||||
|
||||
if [ -f $F ]; then
|
||||
PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 |sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/') ## taken from a sibling script
|
||||
PASS=${PASS:-"og"}
|
||||
PASS=OG+$(echo -n $PASS |sha256sum |cut -c1-12) ## og KDF
|
||||
chmod 0600 $F
|
||||
sed -i -e "s/__OGLOG_IP__/$oglog/g" \
|
||||
-e "s/__OGLOG_PORT__/$OPENSEARCH_PORT/g" \
|
||||
-e "s/__OPENSEARCH_PASSWORD__/$PASS/g" \
|
||||
$F
|
||||
unset PASS
|
||||
|
||||
mkdir -p /var/log/filebeat
|
||||
/usr/bin/filebeat -c $F --path.home /usr/share/filebeat --path.config /etc/filebeat --path.data /var/lib/filebeat --path.logs /var/log/filebeat &
|
||||
fi
|
|
@ -0,0 +1,53 @@
|
|||
#!/bin/bash
|
||||
#/**
|
||||
#@file fileslinks.sh
|
||||
#@brief Script de inicio para copiar ficheros y deinir enlaces simbólicos.
|
||||
#@warning License: GNU GPLv3+
|
||||
#@version 0.9
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2009-10-10
|
||||
#@version 1.0.5 - Enlace para librería libmac (obsoleto en versión 1.1.1).
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2012-06-28
|
||||
#@version 1.1.2 - Autenticación con clave pública para SSH
|
||||
#@author Irina Gómez, ETSII Universidad de Sevilla
|
||||
#@date 2019-09-25
|
||||
#*/
|
||||
|
||||
|
||||
# Si está configurado OpenGnsys ...
|
||||
if [ -n "$OPENGNSYS" ]; then
|
||||
echo "${MSG_MAKELINKS:-.}"
|
||||
|
||||
# Shell BASH por defecto (para usar "runtest")
|
||||
ln -fs /bin/bash /bin/sh 2>/dev/null
|
||||
|
||||
# Crear directorio de bloqueos
|
||||
mkdir -p /var/lock 2>/dev/null || mkdir -p /run/lock
|
||||
|
||||
# Crear ficheros temporales.
|
||||
touch $OGLOGCOMMAND $OGLOGCOMMAND.tmp $OGLOGSESSION /tmp/menu.tmp
|
||||
chmod 777 $OGLOGCOMMAND $OGLOGCOMMAND.tmp $OGLOGSESSION /tmp/menu.tmp
|
||||
|
||||
# Enlaces para Qt Embeded.
|
||||
QTDIR="/usr/local"
|
||||
mkdir -p $QTDIR/{etc,lib,plugins}
|
||||
for i in $OGLIB/qtlib/* $OGLIB/fonts; do
|
||||
[ -f $QTDIR/lib/$i ] || ln -fs $i $QTDIR/lib 2>/dev/null
|
||||
done
|
||||
for i in $OGLIB/qtplugins/*; do
|
||||
[ -f $QTDIR/plugins/$i ] || ln -fs $i $QTDIR/plugins 2>/dev/null
|
||||
done
|
||||
for i in $OGETC/*.qmap; do
|
||||
[ -f $QTDIR/etc/$i ] || ln -fs $i $QTDIR/etc 2>/dev/null
|
||||
done
|
||||
|
||||
# Autenticación con clave pública para SSH
|
||||
[ -f /scripts/ssl/authorized_keys ] && cp /scripts/ssl/* /root/.ssh
|
||||
|
||||
else
|
||||
# FIXME Error: entorno de OpenGnsys no configurado.
|
||||
echo "Error: OpenGnsys environment is not configured." # FIXME: definir mensaje.
|
||||
exit 1
|
||||
fi
|
||||
|
|
@ -0,0 +1,150 @@
|
|||
#!/bin/bash
|
||||
#/**
|
||||
#@file loadenviron.sh
|
||||
#@brief Script de carga de la API de funciones de OpenGnsys.
|
||||
#@warning License: GNU GPLv3+
|
||||
#@version 0.9
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2009-10-10
|
||||
#@version 1.0.3 - Limpiar código y configuración modo off-line
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2012-01-12
|
||||
#@version 1.0.5 - Compatibilidad para usar proxy y servidor DNS.
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2014-04-23
|
||||
#*/
|
||||
|
||||
# Idioma por defecto.
|
||||
export LANG="${LANG:-es_ES}"
|
||||
locale-gen $LANG
|
||||
|
||||
# Directorios del proyecto OpenGnsys.
|
||||
export OPENGNSYS="${OPENGNSYS:-/opt/opengnsys}"
|
||||
if [ -d $OPENGNSYS ]; then
|
||||
export OGBIN=$OPENGNSYS/bin
|
||||
export OGETC=$OPENGNSYS/etc
|
||||
export OGLIB=$OPENGNSYS/lib
|
||||
export OGAPI=$OGLIB/engine/bin
|
||||
export OGPYFUNCS=$OPENGNSYS/functions
|
||||
export OGSCRIPTS=$OPENGNSYS/scripts
|
||||
export OGIMG=$OPENGNSYS/images
|
||||
export OGCAC=$OPENGNSYS/cache
|
||||
export OGLOG=$OPENGNSYS/log
|
||||
|
||||
export PATH=$OGSCRIPTS:$OGPYFUNCS:$OGBIN:$PATH:/opt/oglive/rootfs/opt/drbl/sbin
|
||||
export PYTHONPATH=$OPENGNSYS/lib/python3
|
||||
|
||||
# Exportar parámetros del kernel.
|
||||
for i in $(cat /proc/cmdline); do
|
||||
echo $i | grep -q "=" && export $i
|
||||
done
|
||||
|
||||
# Cargar sysctls
|
||||
sysctl -p &>/dev/null
|
||||
|
||||
# Cargar fichero de idioma.
|
||||
LANGFILE=$OGETC/lang.${LANG%@*}.conf
|
||||
if [ -f $LANGFILE ]; then
|
||||
source $LANGFILE
|
||||
for i in $(awk -F= '{if (NF==2) print $1}' $LANGFILE); do
|
||||
export $i
|
||||
done
|
||||
fi
|
||||
# Mensaje de carga del entorno.
|
||||
echo "${MSG_LOADAPI:-.}"
|
||||
|
||||
# Cargar mapa de teclado.
|
||||
loadkeys ${LANG%_*} >/dev/null
|
||||
|
||||
# Cargar API de funciones.
|
||||
for i in $OGAPI/*.lib; do
|
||||
source $i
|
||||
done
|
||||
|
||||
for i in $(typeset -F | cut -f3 -d" "); do
|
||||
export -f $i
|
||||
done
|
||||
|
||||
# Cargar configuración del engine.
|
||||
[ -f ${OGETC}/engine.cfg ] && source ${OGETC}/engine.cfg
|
||||
export OGLOGCOMMAND=${OGLOGCOMMAND:-/tmp/command.log}
|
||||
export OGLOGSESSION=${OGLOGSESSION:-/tmp/session.log}
|
||||
|
||||
# Cargar las APIs según engine.
|
||||
if [ -n "$ogengine" ]; then
|
||||
for i in $OGAPI/*.$ogengine; do
|
||||
[ -f $i ] && source $i
|
||||
done
|
||||
fi
|
||||
|
||||
# Configuración de la red (modo offline).
|
||||
eval $(grep "^DEVICECFG=" /tmp/initrd.cfg 2>/dev/null)
|
||||
if [ -n "$DEVICECFG" ]; then
|
||||
export DEVICECFG
|
||||
[ -f $DEVICECFG ] && source $DEVICECFG
|
||||
fi
|
||||
|
||||
# FIXME Pruebas para grupos de ordenadores
|
||||
export OGGROUP="$group"
|
||||
|
||||
ROOTREPO=${ROOTREPO:-"$OGSERVERIMAGES"}
|
||||
|
||||
# Fichero de registros.
|
||||
export OGLOGFILE="$OGLOG/$(ogGetIpAddress).log"
|
||||
fi
|
||||
|
||||
# Compatibilidad para usar proxy en clientes ogLive.
|
||||
[ -z "$http_proxy" -a -n "$ogproxy" ] && export http_proxy="$ogproxy"
|
||||
|
||||
# Compatibilidad para usar servidor DNS en clientes ogLive.
|
||||
if [ ! -f /run/resolvconf/resolv.conf -a -n "$ogdns" ]; then
|
||||
mkdir -p /run/resolvconf
|
||||
echo "nameserver $ogdns" > /run/resolvconf/resolv.conf
|
||||
fi
|
||||
|
||||
# Declaración de códigos de error.
|
||||
export OG_ERR_FORMAT=1 # Formato de ejecución incorrecto.
|
||||
export OG_ERR_NOTFOUND=2 # Fichero o dispositivo no encontrado.
|
||||
export OG_ERR_PARTITION=3 # Error en partición de disco.
|
||||
export OG_ERR_LOCKED=4 # Partición o fichero bloqueado.
|
||||
export OG_ERR_IMAGE=5 # Error al crear o restaurar una imagen.
|
||||
export OG_ERR_NOTOS=6 # Sin sistema operativo.
|
||||
export OG_ERR_NOTEXEC=7 # Programa o función no ejecutable.
|
||||
# Códigos 8-13 reservados por ogAdmClient.h
|
||||
export OG_ERR_NOTWRITE=14 # No hay acceso de escritura
|
||||
export OG_ERR_NOTCACHE=15 # No hay particion cache en cliente
|
||||
export OG_ERR_CACHESIZE=16 # No hay espacio en la cache para almacenar fichero-imagen
|
||||
export OG_ERR_REDUCEFS=17 # Error al reducir sistema archivos
|
||||
export OG_ERR_EXTENDFS=18 # Error al expandir el sistema de archivos
|
||||
export OG_ERR_OUTOFLIMIT=19 # Valor fuera de rango o no válido.
|
||||
export OG_ERR_FILESYS=20 # Sistema de archivos desconocido o no se puede montar
|
||||
export OG_ERR_CACHE=21 # Error en partición de caché local
|
||||
export OG_ERR_NOGPT=22 # El disco indicado no contiene una particion GPT
|
||||
export OG_ERR_REPO=23 # Error al montar el repositorio de imagenes
|
||||
export OG_ERR_NOMSDOS=24 # El disco indicado no contienen una particion MSDOS
|
||||
|
||||
export OG_ERR_IMGSIZEPARTITION=30 # Error al restaurar partición más pequeña que la imagen
|
||||
export OG_ERR_UPDATECACHE=31 # Error al realizar el comando updateCache
|
||||
export OG_ERR_DONTFORMAT=32 # Error al formatear
|
||||
export OG_ERR_IMAGEFILE=33 # Archivo de imagen corrupto o de otra versión de $IMGPROG
|
||||
export OG_ERR_GENERIC=40 # Error imprevisto no definido
|
||||
export OG_ERR_UCASTSYNTAXT=50 # Error en la generación de sintaxis de transferenica UNICAST
|
||||
export OG_ERR_UCASTSENDPARTITION=51 # Error en envío UNICAST de partición
|
||||
export OG_ERR_UCASTSENDFILE=52 # Error en envío UNICAST de un fichero
|
||||
export OG_ERR_UCASTRECEIVERPARTITION=53 # Error en la recepcion UNICAST de una particion
|
||||
export OG_ERR_UCASTRECEIVERFILE=54 # Error en la recepcion UNICAST de un fichero
|
||||
export OG_ERR_MCASTSYNTAXT=55 # Error en la generacion de sintaxis de transferenica Multicast.
|
||||
export OG_ERR_MCASTSENDFILE=56 # Error en envio MULTICAST de un fichero
|
||||
export OG_ERR_MCASTRECEIVERFILE=57 # Error en la recepcion MULTICAST de un fichero
|
||||
export OG_ERR_MCASTSENDPARTITION=58 # Error en envio MULTICAST de una particion
|
||||
export OG_ERR_MCASTRECEIVERPARTITION=59 # Error en la recepcion MULTICAST de una particion
|
||||
export OG_ERR_PROTOCOLJOINMASTER=60 # Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER
|
||||
|
||||
export OG_ERR_DONTMOUNT_IMAGE=70 # Error al montar una imagen sincronizada.
|
||||
export OG_ERR_DONTSYNC_IMAGE=71 # Imagen no sincronizable (es monolitica)
|
||||
export OG_ERR_DONTUNMOUNT_IMAGE=72 # Error al desmontar la imagen
|
||||
export OG_ERR_NOTDIFFERENT=73 # No se detectan diferencias entre la imagen basica y la particion.
|
||||
export OG_ERR_SYNCHRONIZING=74 # Error al sincronizar, puede afectar la creacion/restauracion de la imagen
|
||||
|
||||
export OG_ERR_NOTUEFI=80 # La interfaz UEFI no está activa
|
||||
export OG_ERR_NOTBIOS=81 # La interfaz BIOS legacy no está activa
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/bash
|
||||
#/**
|
||||
#@file loadmodules.sh
|
||||
#@brief Script de inicio para cargar módulos complementarios del kernel.
|
||||
#@version 1.0
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2010-01-26
|
||||
#@version 1.0.5 - Cargar módulos específicos para el cliente.
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2013-11-11
|
||||
#*/
|
||||
|
||||
|
||||
echo "${MSG_LOADMODULES:-.}"
|
||||
|
||||
# Módulo del ratón.
|
||||
modprobe psmouse 2>/dev/null
|
||||
|
||||
# Cargar módulos específicos del kernel del cliente.
|
||||
for m in $OGLIB/modules/$(uname -r)/*.ko; do
|
||||
[ -r $m ] && insmod $m &>/dev/null
|
||||
done
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/bash
|
||||
#/**
|
||||
#@file metadevs.sh
|
||||
#@brief Script de inicio para detectar metadispositivos LVM y RAID.
|
||||
#@note Desglose del script "loadenviron.sh".
|
||||
#@warning License: GNU GPLv3+
|
||||
#@version 0.9
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2009-10-10
|
||||
#@version 0.9.4
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2010-04-19
|
||||
#*/
|
||||
|
||||
|
||||
# Si está configurado OpenGnsys ...
|
||||
if [ -n "$OPENGNSYS" ]; then
|
||||
echo "$MSG_DETECTLVMRAID"
|
||||
# Detectar metadispositivos LVM.
|
||||
vgchange -ay &>/dev/null
|
||||
# Detectar metadispositivos RAID.
|
||||
dmraid -ay &>/dev/null
|
||||
else
|
||||
# FIXME Error: entorno de OpenGnsys no configurado.
|
||||
echo "Error: OpenGnsys environment is not configured." # FIXME: definir mensaje.
|
||||
exit 1
|
||||
fi
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
#!/bin/bash
|
||||
#/**
|
||||
#@file mountrepo.sh
|
||||
#@brief Script para montar el repositorio de datos remoto.
|
||||
#@warning License: GNU GPLv3+
|
||||
#@version 1.0
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2011-03-17
|
||||
#*/
|
||||
|
||||
OGIMG=${OGIMG:-/opt/opengnsys/images}
|
||||
ROOTREPO=${ROOTREPO:-"$ROOTSERVER"}
|
||||
|
||||
# TODO Revisar proceso de arranque para no montar 2 veces el repositorio.
|
||||
if [ "$ogactiveadmin" == "true" ]; then
|
||||
export boot=admin # ATENCIÓN: siempre en modo "admin".
|
||||
umount $OGIMG 2>/dev/null
|
||||
|
||||
protocol=${ogprotocol:-"smb"}
|
||||
[ "$ogunit" != "" ] && OGUNIT="/$ogunit"
|
||||
printf "$MSG_MOUNTREPO\n" "$protocol" "$boot"
|
||||
case "$ogprotocol" in
|
||||
nfs) mount.nfs ${ROOTREPO}:$OGIMG$OGUNIT $OGIMG -o rw,nolock ;;
|
||||
smb) PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 | \
|
||||
sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/')
|
||||
PASS=${PASS:-"og"}
|
||||
mount.cifs //${ROOTREPO}/ogimages$OGUNIT $OGIMG -o rw,serverino,acl,username=opengnsys,password=$PASS
|
||||
;;
|
||||
local) # TODO: hacer funcion dentro de este script que monte smb
|
||||
# Comprobamos que estatus sea online.
|
||||
if [ "$ogstatus" == "offline" -o "$SERVER" == "" ]; then
|
||||
# Si estatus es offline buscamos un dispositivo con etiqueta repo
|
||||
# y si no existe montamos la cache como repo (si existe).
|
||||
TYPE=$(blkid | grep REPO | awk -F"TYPE=" '{print $2}' | tr -d \")
|
||||
if [ "$TYPE" == "" ]; then
|
||||
[ -d $OGCAC/$OGIMG ] && mount --bind $OGCAC/$OGIMG $OGIMG
|
||||
else
|
||||
mount -t $TYPE LABEL=REPO $OGIMG &>/dev/null
|
||||
fi
|
||||
else
|
||||
# Comprobamos que existe un servicio de samba.
|
||||
smbclient -L $SERVER -N &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 | \
|
||||
sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/')
|
||||
PASS=${PASS:-"og"}
|
||||
mount.cifs //${ROOTREPO}/ogimages $OGIMG -o rw,serverino,acl,username=opengnsys,password=$PASS
|
||||
fi
|
||||
# TODO: buscar condicion para NFS
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
#!/bin/bash
|
||||
#/**
|
||||
#@file otherservices.sh
|
||||
#@brief Script de inicio para cargar otros servicios complementarios.
|
||||
#@version 1.0.3
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2012-01-12
|
||||
#*/
|
||||
|
||||
ogIsEfiActive && mount -t efivarfs none /sys/firmware/efi/efivars
|
||||
echo "${MSG_OTHERSERVICES:-.}"
|
||||
|
||||
# stunnel start
|
||||
cat >/etc/stunnel/menu.conf <<__EOF__
|
||||
setuid = stunnel4
|
||||
setgid = stunnel4
|
||||
pid = /var/run/stunnel4/menu.pid
|
||||
foreground = yes
|
||||
debug = info
|
||||
|
||||
[menu]
|
||||
client = yes
|
||||
accept = 127.0.0.1:81
|
||||
connect = $ogcore:8443
|
||||
__EOF__
|
||||
if [[ true == "$ogusetls" ]]; then
|
||||
if [[ true == "$ogverifytls" ]]; then
|
||||
## use tls and verify
|
||||
cat >>/etc/stunnel/menu.conf <<__EOF__
|
||||
cert = /opt/opengnsys/etc/ogagent.crt
|
||||
key = /opt/opengnsys/etc/ogagent.key
|
||||
CAfile = /opt/opengnsys/etc/ca.crt
|
||||
requireCert = yes
|
||||
verifyChain = yes
|
||||
__EOF__
|
||||
else
|
||||
## use tls but not verify
|
||||
cat >>/etc/stunnel/menu.conf <<__EOF__
|
||||
cert = /opt/opengnsys/etc/ogagent.crt
|
||||
key = /opt/opengnsys/etc/ogagent.key
|
||||
CAfile = /opt/opengnsys/etc/ca.crt
|
||||
requireCert = no
|
||||
verifyChain = no
|
||||
__EOF__
|
||||
fi
|
||||
else
|
||||
## don't use tls
|
||||
cat >>/etc/stunnel/menu.conf <<__EOF__
|
||||
requireCert = no
|
||||
verifyChain = no
|
||||
__EOF__
|
||||
fi
|
||||
mkdir -p /var/run/stunnel4; chown stunnel4:stunnel4 /var/run/stunnel4
|
||||
stunnel /etc/stunnel/menu.conf &>/var/log/stunnel4/menu.log &
|
||||
# stunnel end
|
||||
|
||||
# dbus
|
||||
if [ -e /etc/dbus-1/system.d/ogbrowser.conf ]; then
|
||||
mkdir -p /run/dbus
|
||||
DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --print-address --system --nosyslog)
|
||||
export DBUS_SESSION_BUS_ADDRESS
|
||||
dbus-monitor --system &>/var/log/dbus-monitor.log &
|
||||
fi
|
||||
|
||||
[ -S /dev/log ] || service rsyslog start
|
||||
|
||||
# root password
|
||||
PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 | sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/')
|
||||
PASS=${PASS:-"og"}
|
||||
echo -ne "$PASS\n$PASS\n" | passwd root 2>/dev/null
|
||||
|
||||
cp -a $OPENGNSYS/etc/preinit/loadenviron.sh /etc/profile.d/
|
||||
/etc/init.d/ssh start &>/dev/null
|
||||
|
||||
#setterm -blank 0 -powersave off -powerdown 0 < /dev/console > /dev/console 2>&1 ## apagado de monitor
|
||||
ethtool -s $DEVICE wol g 2>/dev/null ## Activado WOL en la interfaz usada en arranque PXE.
|
||||
[ -f /opt/opengnsys/scripts/runhttplog.sh ] && /opt/opengnsys/scripts/runhttplog.sh 2>/dev/null
|
|
@ -0,0 +1,40 @@
|
|||
#!/bin/bash
|
||||
#/**
|
||||
#@file poweroff.sh
|
||||
#@brief Script de inicio para cargar el proceso comprobación de clientes inactivos.
|
||||
#@note Arranca y configura el proceso "cron".
|
||||
#@warning License: GNU GPLv3+
|
||||
#@version 1.0.2
|
||||
#@author Ramon Gomez, ETSII Universidad de Sevilla
|
||||
#@date 2011-10-25
|
||||
#*/
|
||||
|
||||
|
||||
# Si está configurado OpenGnsys ...
|
||||
if [ -n "$OPENGNSYS" ]; then
|
||||
echo "${MSG_POWEROFFCONF:-.}"
|
||||
|
||||
# Sincronización horaria con servidor NTP.
|
||||
[ -n "$ogntp" -a "$status" != "offline" ] && ntpdate $ogntp
|
||||
|
||||
# Crear fichero de configuración por defecto (30 min. de espera).
|
||||
POWEROFFCONF=/etc/poweroff.conf
|
||||
cat << FIN > $POWEROFFCONF
|
||||
POWEROFFSLEEP=30
|
||||
POWEROFFTIME=
|
||||
FIN
|
||||
# Incluir zona horaria en el fichero de configuración.
|
||||
awk 'BEGIN {RS=" "} /^TZ=/ {print}' /proc/cmdline >> $POWEROFFCONF
|
||||
|
||||
# Lanzar el proceso "cron".
|
||||
cron -l
|
||||
|
||||
# Definir la "crontab" lanzando el proceso de comprobación cada minuto.
|
||||
echo "* * * * * [ -x $OGBIN/poweroffconf ] && $OGBIN/poweroffconf" | crontab -
|
||||
|
||||
else
|
||||
# FIXME Error: entorno de OpenGnsys no configurado.
|
||||
echo "Error: OpenGnsys environment is not configured." # FIXME: definir mensaje.
|
||||
exit 1
|
||||
fi
|
||||
|
Loading…
Reference in New Issue