258 lines
7.0 KiB
Bash
Executable File
258 lines
7.0 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"
|
|
console="core/ema.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 "consola" > /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 = 'consola' ]
|
|
then
|
|
log_daemon_msg "Comenzando EMA Libre Carpincho en modo consola"
|
|
echo "$(date '+%d/%m/%Y %H:%M:%S') - 0|SERVICIO|Inicio el servicio en modo consola." >> $emaLogs
|
|
$foreverApp start --uid "EMA_Consola" --id "EMA_Consola" --minUptime 5000 --spinSleepTime 5000 --sourceDir $appFilePath --workingDir $appFilePath --pidFile $pidFile -l $logFile -a -d -c node "$console" console
|
|
RETVAL=$?
|
|
else
|
|
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" encender
|
|
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/core"
|
|
node 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-web)
|
|
log_daemon_msg "Se configuró EMA Libre en modo web."
|
|
`echo "web" > /etc/emalibre_modo`
|
|
|
|
;;
|
|
set-consola)
|
|
log_daemon_msg "Se configuró EMA Libre en modo consola."
|
|
`echo "consola" > /etc/emalibre_modo`
|
|
|
|
;;
|
|
set-inicio-enabled)
|
|
log_daemon_msg "Se Habilito el servicio para inicio automatico."
|
|
systemctl enable emalibre
|
|
|
|
;;
|
|
set-inicio-disable)
|
|
log_daemon_msg "Se Deshabilito el inicio automatico del servicio."
|
|
systemctl disable emalibre
|
|
|
|
;;
|
|
view-conf)
|
|
log_daemon_msg "Configuración de EMA Libre Carpincho"
|
|
log_daemon_msg "-------------------------------------"
|
|
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 ""
|
|
log_daemon_msg "-> Tiempo de Recolección: `sed -E 's/.*"Tiempo_de_Recoleccion":"?([^,"]*)"?.*/\1/' /usr/share/emalibre/conf/ConfiguracionGeneral.js |sed '1d' | sed '/^$/d'`"
|
|
log_daemon_msg "-> UTC: `sed -E 's/.*"UTC":"?([^,"]*)"?.*/\1/' /usr/share/emalibre/conf/ConfiguracionGeneral.js |sed '1d' | sed '/^$/d'`"
|
|
log_daemon_msg "-> Nivel Debug: `sed -E 's/.*"debug":"?([^,"]*)"?.*/\1/' /usr/share/emalibre/conf/ConfiguracionGeneral.js |sed '1d' | sed '/^$/d'`"
|
|
|
|
;;
|
|
*)
|
|
echo "Utilice: {start|stop|status|restart|set-web|set-consola|set-inicio-enabled|set-inicio-disable|view-conf|reporte|uptime}"
|
|
exit 1
|
|
|
|
;;
|
|
esac
|
|
else
|
|
# SI NO EXISTE EL MODULO GUI_WEB se habilitan solo modo consola
|
|
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
|
|
|
|
;;
|
|
set-inicio-disable)
|
|
log_daemon_msg "Se Deshabilito el inicio automatico del servicio."
|
|
systemctl disable emalibre
|
|
|
|
;;
|
|
view-conf)
|
|
log_daemon_msg "Configuración de EMA Libre Carpincho"
|
|
log_daemon_msg "-------------------------------------"
|
|
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 ""
|
|
log_daemon_msg "-> Tiempo de Recolección: `sed -E 's/.*"Tiempo_de_Recoleccion":"?([^,"]*)"?.*/\1/' /usr/share/emalibre/conf/ConfiguracionGeneral.js |sed '1d' | sed '/^$/d'`"
|
|
log_daemon_msg "-> UTC: `sed -E 's/.*"UTC":"?([^,"]*)"?.*/\1/' /usr/share/emalibre/conf/ConfiguracionGeneral.js |sed '1d' | sed '/^$/d'`"
|
|
log_daemon_msg "-> Nivel Debug: `sed -E 's/.*"debug":"?([^,"]*)"?.*/\1/' /usr/share/emalibre/conf/ConfiguracionGeneral.js |sed '1d' | sed '/^$/d'`"
|
|
|
|
;;
|
|
*)
|
|
echo "Utilice: {start|stop|status|restart|set-inicio-enabled|set-inicio-disable|view-conf|reporte|uptime}"
|
|
exit 1
|
|
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
exit $RETVAL |