Carpincho/build/Deb64/etc/init.d/emalibre
Exequiel Aramburu 2e2af3e169 Cambios
2026-09-27 20:04:22 -03:00

208 lines
6.5 KiB
Bash
Executable File

#!/bin/bash
### BEGIN INIT INFO
# Provides: EMA Libre Carpincho
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: EMA Libre Carpincho demonio
# Description: Start/stop/Restart EMA Libre Carpincho
### END INIT INFO
### CONFIG ZONE
# Get function from functions library
#set -e
. /lib/lsb/init-functions
RETVAL=0
# Nombre del servicio.
serviceName="emalibre"
# Ubicacion de la APP
appFilePath="/usr/share/emalibre"
# Archivo de Inicio.
web="gui_web/express.js"
### END CONFIG ZONE
# Ubicacion de logs y del pid.
pidFile="/var/run/$serviceName.pid"
logFile="/var/run/$serviceName.log"
# Ubicacion de node como modulo de carpincho.
nodemodule="$appFilePath/node_modules/node/bin"
# Ubicacion de forever como modulo de carpincho.
foreverApp="$appFilePath/node_modules/forever/bin/forever"
# Ubicacion de logs de EMA Libre
emaLogs="$appFilePath/logs/debug.log"
export PATH=$PATH:$nodemodule
start() {
if [ ! -f /etc/emalibre_modo ]
then
`echo "web" > /etc/emalibre_modo`
fi
MODO=`cat /etc/emalibre_modo`
if [ -f $pidFile ]; then
log_daemon_msg "EMA libre Carpincho se encuentra corriendo."
RETVAL=$?
else
if [ $MODO = 'web' ]
then
log_daemon_msg "Comenzando EMA Libre Carpincho en modo web"
echo "$(date '+%d/%m/%Y %H:%M:%S') - 0|SERVICIO|Inicio el servicio en modo web." >> $emaLogs
$foreverApp start --uid "EMA_Web" --id "EMA_Web" --minUptime 5000 --spinSleepTime 5000 --sourceDir $appFilePath --workingDir $appFilePath --pidFile $pidFile -l $logFile -a -d -c node "$web" iniciar
RETVAL=$?
fi
fi
RETVAL=$?
}
restart() {
log_daemon_msg "Reiniciando EMA Libre Carpincho"
echo "$(date '+%d/%m/%Y %H:%M:%S') - 0|SERVICIO|Reiniciando el servicio." >> $emaLogs
$foreverApp restart $nodemodule
RETVAL=$?
}
stop() {
if [ -f $pidFile ]; then
log_daemon_msg "Deteniendo EMA Libre Carpincho."
echo "$(date '+%d/%m/%Y %H:%M:%S') - 0|SERVICIO|Detenido el servicio." >> $emaLogs
$foreverApp stopall
RETVAL=$?
else
log_daemon_msg "EMA libre Carpincho no se encuentra ejecutandose."
fi
RETVAL=$?
}
status() {
log_daemon_msg "Mostrando estado nativo del servicio."
RETVAL=$?
}
uptime() {
echo "$(date '+%d/%m/%Y %H:%M:%S') - 0|SERVICIO|Mostrando el uptime del servicio (consola)." >> $emaLogs
$foreverApp list
RETVAL=$?
}
reporte() {
echo "$(date '+%d/%m/%Y %H:%M:%S') - 0|SERVICIO|Mostrando el reporte de consola." >> $emaLogs
pushd "$appFilePath"
"$nodemodule/node" core/reporte.js
RETVAL=$?
}
if [ -d /usr/share/emalibre/gui_web ]
then
# SI EXISTE EL MODULO GUI_WEB se habilitan algunas opciones
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
reporte)
reporte
;;
uptime)
uptime
;;
set-inicio-enabled)
log_daemon_msg "Se Habilito el servicio para inicio automatico."
systemctl enable emalibre
"$nodemodule/node" -e "
const fs = require('fs');
const cfgPath = '/usr/share/emalibre/conf/ConfiguracionGeneral.js';
const cfg = require(cfgPath);
cfg.ConfGeneral.inicio_automatico = true;
fs.writeFileSync(
cfgPath,
'module.exports = ' + JSON.stringify(cfg, null, 2) + ';\n'
);
"
;;
set-inicio-disable)
log_daemon_msg "Se Deshabilito el inicio automatico del servicio."
systemctl disable emalibre
"$nodemodule/node" -e "
const fs = require('fs');
const cfgPath = '/usr/share/emalibre/conf/ConfiguracionGeneral.js';
const cfg = require(cfgPath);
cfg.ConfGeneral.inicio_automatico = false;
fs.writeFileSync(
cfgPath,
'module.exports = ' + JSON.stringify(cfg, null, 2) + ';\n'
);
"
;;
view-conf)
log_daemon_msg "Configuración de EMA Libre Carpincho"
log_daemon_msg "-------------------------------------"
CFG=/usr/share/emalibre/conf/ConfiguracionGeneral.js
if [ -f /etc/emalibre_modo ]
then
log_daemon_msg "Modo actual: `cat /etc/emalibre_modo` "
else
`echo "consola" > /etc/emalibre_modo`
log_daemon_msg "Modo actual: `cat /etc/emalibre_modo` "
fi
log_daemon_msg "Inicio Automatico (servicio): `systemctl is-enabled emalibre 2> echo`"
log_daemon_msg ""
log_daemon_msg "----------------------"
log_daemon_msg "Configuracion Global:"
log_daemon_msg "->`grep "Version" /usr/share/emalibre/conf/ConfiguracionGlobal.js`"
log_daemon_msg "->`grep "Nombre" /usr/share/emalibre/conf/ConfiguracionGlobal.js`"
log_daemon_msg "----------------------"
log_daemon_msg "Configuracion General:"
log_daemon_msg ""
CFG=/usr/share/emalibre/conf/ConfiguracionGeneral.js
log_daemon_msg "-> Tiempo de Recolección: $(sed -nE 's/^[[:space:]]*"Tiempo_de_Recoleccion"[[:space:]]*:[[:space:]]*([0-9]+),?/\1/p' $CFG)"
log_daemon_msg "-> UTC: $(sed -nE 's/^[[:space:]]*"UTC"[[:space:]]*:[[:space:]]*(-?[0-9]+),?/\1/p' $CFG)"
log_daemon_msg "-> Sistema Métrico: $(sed -nE 's/^[[:space:]]*"SistemaMetrico"[[:space:]]*:[[:space:]]*"([^"]+)",?/\1/p' $CFG)"
log_daemon_msg "-> Nivel Debug: $(sed -nE 's/^[[:space:]]*"debug"[[:space:]]*:[[:space:]]*([0-9]+),?/\1/p' $CFG)"
log_daemon_msg "-> Tamaño Debug: $(sed -nE 's/^[[:space:]]*"debugTamanio"[[:space:]]*:[[:space:]]*([0-9]+),?/\1/p' $CFG)"
log_daemon_msg "-> Nombre Estación: $(sed -nE 's/^[[:space:]]*"NombreEstacion"[[:space:]]*:[[:space:]]*"([^"]+)",?/\1/p' $CFG)"
log_daemon_msg "-> Modo: $(sed -nE 's/^[[:space:]]*"Modo"[[:space:]]*:[[:space:]]*"([^"]+)",?/\1/p' $CFG)"
log_daemon_msg "-> Llave R: $(sed -nE 's/^[[:space:]]*"Llave_R"[[:space:]]*:[[:space:]]*"([^"]+)",?/\1/p' $CFG)"
log_daemon_msg "-> Inicio automático: $(sed -nE 's/^[[:space:]]*"inicio_automatico"[[:space:]]*:[[:space:]]*(true|false),?/\1/p' $CFG)"
log_daemon_msg "-> Audio: $(sed -nE 's/^[[:space:]]*"Audio"[[:space:]]*:[[:space:]]*(true|false),?/\1/p' $CFG)"
log_daemon_msg "-> Notificar cambios: $(sed -nE 's/^[[:space:]]*"notificar_cambios"[[:space:]]*:[[:space:]]*(true|false),?/\1/p' $CFG)"
log_daemon_msg "-> Audio Voces: $(sed -nE 's/^[[:space:]]*"audioVoces"[[:space:]]*:[[:space:]]*"([^"]+)",?/\1/p' $CFG)"
log_daemon_msg "-> IP: $(sed -nE 's/^[[:space:]]*"IP"[[:space:]]*:[[:space:]]*"([^"]+)",?/\1/p' $CFG)"
log_daemon_msg "-> Puerto: $(sed -nE 's/^[[:space:]]*"Puerto"[[:space:]]*:[[:space:]]*"([^"]+)",?/\1/p' $CFG)"
log_daemon_msg "-> Ruta: $(sed -nE 's/^[[:space:]]*"Ruta"[[:space:]]*:[[:space:]]*"([^"]+)",?/\1/p' $CFG)"
;;
*)
echo "Utilice: {start|stop|status|restart|set-inicio-enabled|set-inicio-disable|view-conf|reporte|uptime}"
exit 1
;;
esac
fi
exit $RETVAL