diff --git a/CHANGELOG.md b/CHANGELOG.md index 862276a..36b7e32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,14 @@ Su formato se basa en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) y - [ ] ~~Hacer que **actualizador.sh** sea "inteligente" y actualice en función de la versión.~~ +## [0.10.3] - 2019-12-19 +### Añadido +- Soporte de requisitos de otros servicios en **cpu.sh**, **domotica_servidor.sh**, **reinicar_router.sh** y **temperatura.sh**. + +### Arreglado +- Comando status sin necesidad de sudo en **cpu.sh**, **domotica_servidor.sh**, **reinicar_router.sh** y **temperatura.sh**. +- Comando de restart + ## [0.10.2] - 2019-12-19 ### Arreglado diff --git a/Python/indice_gpio.py b/Python/indice_gpio.py index f48217d..c1d0780 100755 --- a/Python/indice_gpio.py +++ b/Python/indice_gpio.py @@ -47,10 +47,10 @@ def main(argv): for gpio in gpios: if gpio[0] in gpios_bcm_normales_libres: # Si el puerto está en esta lista gpios_bcm_normales_libres.remove(gpio[0]) # Se elimina de la lista de libres - + elif gpio[0] in gpios_bcm_extendidos_libres: # Si el puerto está en esta lista gpios_bcm_extendidos_libres.remove(gpio[0]) # Se elimina de la lista de libres - + elif gpio[0] in gpios_bcm_especiales_libres: # Si el puerto está en esta lista gpios_bcm_especiales_libres.remove(gpio[0]) # Se elimina de la lista de libres diff --git a/init/cpu.sh b/init/cpu.sh index 3d376a4..ec0898d 100755 --- a/init/cpu.sh +++ b/init/cpu.sh @@ -13,58 +13,82 @@ # Title : cpu # Description : Script de init.d para el arranque automático del sistema "cpu.py". # Author : Veltys -# Date : 2019-11-22 -# Version : 1.1.2 +# Date : 2019-12-19 +# Version : 2.0.5 # Usage : /etc/init.d/cpu {start|stop|restart|status} # Notes : -if [ "$UID" -ne '0' ]; then - echo 'Este script debe ser lanzado con permisos de root. ¿Quizá anteponiéndole la orden sudo?' +nombre=cpu +directorio='/opt/RPPGCT' +fallo='Este comando debe ser lanzado con permisos de root. ¿Quizá anteponiéndole la orden sudo?' - exit -1 -else - nombre=cpu - directorio='/opt/RPPGCT' - - case "$1" in +# requisitos[]='' - start) + +case "$1" in + start) + if [ "$UID" -ne '0' ]; then + echo $fallo + + exit -1 + else if [ -f /var/lock/${nombre}.lock ]; then echo "${nombre}.py ya está en ejecución" else + if [ ! -z $requisitos ]; then + echo "Iniciando requisitos de ${nombre}.py" + + for requisito in "${requisitos[@]}"; do + /etc/init.d/${requisito} start + done + fi + echo "Iniciando ${nombre}.py" + ${directorio}/${nombre}.py & fi - ;; + fi + ;; + + stop) + if [ "$UID" -ne '0' ]; then + echo $fallo - stop) + exit -1 + else if [ -f /var/lock/${nombre}.lock ]; then echo "Deteniendo ${nombre}.py" + pkill -f ${directorio}/${nombre}.py else echo "${nombre}.py no está en ejecución" fi - ;; + fi + ;; - restart) - /etc/init.d/${nombre} stop && /etc/init.d/${nombre} start - ;; + restart) + if [ "$UID" -ne '0' ]; then + echo $fallo - status) - if [ -f /var/lock/${nombre}.lock ]; then - echo "${nombre}.py está en ejecución" - else - echo "${nombre}.py no está en ejecución" - fi - ;; + exit -1 + else + /etc/init.d/${nombre} stop && sleep 20 && /etc/init.d/${nombre} start + fi + ;; - *) - echo "Uso: /etc/init.d/${nombre} {start|stop|restart|status}" - exit 1 - ;; + status) + if [ -f /var/lock/${nombre}.lock ]; then + echo "${nombre}.py está en ejecución" + else + echo "${nombre}.py no está en ejecución" + fi + ;; - esac + *) + echo "Uso: /etc/init.d/${nombre} {start|stop|restart|status}" + exit 1 + ;; +esac - exit 0 -fi +exit 0 diff --git a/init/domotica_servidor.sh b/init/domotica_servidor.sh index 8be6bcc..5603b93 100755 --- a/init/domotica_servidor.sh +++ b/init/domotica_servidor.sh @@ -13,58 +13,82 @@ # Title : domotica_servidor # Description : Script de init.d para el arranque automático del sistema "domotica_servidor.py". # Author : Veltys -# Date : 2019-11-22 -# Version : 1.0.3 +# Date : 2019-12-19 +# Version : 2.0.5 # Usage : /etc/init.d/domotica_servidor {start|stop|restart|status} # Notes : -if [ "$UID" -ne '0' ]; then - echo 'Este script debe ser lanzado con permisos de root. ¿Quizá anteponiéndole la orden sudo?' +nombre=domotica_servidor +directorio='/opt/RPPGCT' +fallo='Este comando debe ser lanzado con permisos de root. ¿Quizá anteponiéndole la orden sudo?' - exit -1 -else - nombre=domotica_servidor - directorio='/opt/RPPGCT' - - case "$1" in +# requisitos[]='' - start) + +case "$1" in + start) + if [ "$UID" -ne '0' ]; then + echo $fallo + + exit -1 + else if [ -f /var/lock/${nombre}.lock ]; then echo "${nombre}.py ya está en ejecución" else + if [ ! -z $requisitos ]; then + echo "Iniciando requisitos de ${nombre}.py" + + for requisito in "${requisitos[@]}"; do + /etc/init.d/${requisito} start + done + fi + echo "Iniciando ${nombre}.py" + ${directorio}/${nombre}.py & fi - ;; + fi + ;; + + stop) + if [ "$UID" -ne '0' ]; then + echo $fallo - stop) + exit -1 + else if [ -f /var/lock/${nombre}.lock ]; then echo "Deteniendo ${nombre}.py" + pkill -f ${directorio}/${nombre}.py else echo "${nombre}.py no está en ejecución" fi - ;; + fi + ;; - restart) - /etc/init.d/${nombre} stop && /etc/init.d/${nombre} start - ;; + restart) + if [ "$UID" -ne '0' ]; then + echo $fallo - status) - if [ -f /var/lock/${nombre}.lock ]; then - echo "${nombre}.py está en ejecución" - else - echo "${nombre}.py no está en ejecución" - fi - ;; + exit -1 + else + /etc/init.d/${nombre} stop && sleep 20 && /etc/init.d/${nombre} start + fi + ;; - *) - echo "Uso: /etc/init.d/${nombre} {start|stop|restart|status}" - exit 1 - ;; + status) + if [ -f /var/lock/${nombre}.lock ]; then + echo "${nombre}.py está en ejecución" + else + echo "${nombre}.py no está en ejecución" + fi + ;; - esac + *) + echo "Uso: /etc/init.d/${nombre} {start|stop|restart|status}" + exit 1 + ;; +esac - exit 0 -fi +exit 0 diff --git a/init/reiniciar_router.sh b/init/reiniciar_router.sh index 1a56ecf..d376c52 100755 --- a/init/reiniciar_router.sh +++ b/init/reiniciar_router.sh @@ -13,58 +13,82 @@ # Title : reiniciar_router # Description : Script de init.d para el arranque automático del sistema "reiniciar_router.py". # Author : Veltys -# Date : 2019-11-22 -# Version : 1.1.2 +# Date : 2019-12-19 +# Version : 2.0.5 # Usage : /etc/init.d/reiniciar_router {start|stop|restart|status} # Notes : -if [ "$UID" -ne '0' ]; then - echo 'Este script debe ser lanzado con permisos de root. ¿Quizá anteponiéndole la orden sudo?' +nombre=reiniciar_router +directorio='/opt/RPPGCT' +fallo='Este comando debe ser lanzado con permisos de root. ¿Quizá anteponiéndole la orden sudo?' - exit -1 -else - nombre=reiniciar_router - directorio='/opt/RPPGCT' +requisitos[0]='domotica_servidor' - case "$1" in - start) +case "$1" in + start) + if [ "$UID" -ne '0' ]; then + echo $fallo + + exit -1 + else if [ -f /var/lock/${nombre}.lock ]; then echo "${nombre}.py ya está en ejecución" else + if [ ! -z $requisitos ]; then + echo "Iniciando requisitos de ${nombre}.py" + + for requisito in "${requisitos[@]}"; do + /etc/init.d/${requisito} start + done + fi + echo "Iniciando ${nombre}.py" + ${directorio}/${nombre}.py & fi - ;; + fi + ;; + + stop) + if [ "$UID" -ne '0' ]; then + echo $fallo - stop) + exit -1 + else if [ -f /var/lock/${nombre}.lock ]; then echo "Deteniendo ${nombre}.py" + pkill -f ${directorio}/${nombre}.py else echo "${nombre}.py no está en ejecución" fi - ;; + fi + ;; - restart) - /etc/init.d/${nombre} stop && /etc/init.d/${nombre} start - ;; + restart) + if [ "$UID" -ne '0' ]; then + echo $fallo - status) - if [ -f /var/lock/${nombre}.lock ]; then - echo "${nombre}.py está en ejecución" - else - echo "${nombre}.py no está en ejecución" - fi - ;; + exit -1 + else + /etc/init.d/${nombre} stop && sleep 20 && /etc/init.d/${nombre} start + fi + ;; - *) - echo "Uso: /etc/init.d/${nombre} {start|stop|restart|status}" - exit 1 - ;; + status) + if [ -f /var/lock/${nombre}.lock ]; then + echo "${nombre}.py está en ejecución" + else + echo "${nombre}.py no está en ejecución" + fi + ;; - esac + *) + echo "Uso: /etc/init.d/${nombre} {start|stop|restart|status}" + exit 1 + ;; +esac - exit 0 -fi +exit 0 diff --git a/init/temperatura.sh b/init/temperatura.sh index d2c88ac..2237a9f 100755 --- a/init/temperatura.sh +++ b/init/temperatura.sh @@ -13,58 +13,82 @@ # Title : temperatura # Description : Script de init.d para el arranque automático del sistema "temperatura.py". # Author : Veltys -# Date : 2019-11-22 -# Version : 1.1.3 -# Usage : /etc/init.d/temperaturas {start|stop|restart|status} +# Date : 2019-12-19 +# Version : 2.0.5 +# Usage : /etc/init.d/temperatura {start|stop|restart|status} # Notes : -if [ "$UID" -ne '0' ]; then - echo 'Este script debe ser lanzado con permisos de root. ¿Quizá anteponiéndole la orden sudo?' +nombre=temperatura +directorio='/opt/RPPGCT' +fallo='Este comando debe ser lanzado con permisos de root. ¿Quizá anteponiéndole la orden sudo?' - exit -1 -else - nombre=temperatura - directorio='/opt/RPPGCT' +# requisitos[]='' - case "$1" in - start) +case "$1" in + start) + if [ "$UID" -ne '0' ]; then + echo $fallo + + exit -1 + else if [ -f /var/lock/${nombre}.lock ]; then echo "${nombre}.py ya está en ejecución" else + if [ ! -z $requisitos ]; then + echo "Iniciando requisitos de ${nombre}.py" + + for requisito in "${requisitos[@]}"; do + /etc/init.d/${requisito} start + done + fi + echo "Iniciando ${nombre}.py" + ${directorio}/${nombre}.py & fi - ;; + fi + ;; + + stop) + if [ "$UID" -ne '0' ]; then + echo $fallo - stop) + exit -1 + else if [ -f /var/lock/${nombre}.lock ]; then echo "Deteniendo ${nombre}.py" + pkill -f ${directorio}/${nombre}.py else echo "${nombre}.py no está en ejecución" fi - ;; + fi + ;; - restart) - /etc/init.d/${nombre} stop && /etc/init.d/${nombre} start - ;; + restart) + if [ "$UID" -ne '0' ]; then + echo $fallo - status) - if [ -f /var/lock/${nombre}.lock ]; then - echo "${nombre}.py está en ejecución" - else - echo "${nombre}.py no está en ejecución" - fi - ;; + exit -1 + else + /etc/init.d/${nombre} stop && sleep 20 && /etc/init.d/${nombre} start + fi + ;; - *) - echo "Uso: /etc/init.d/${nombre} {start|stop|restart|status}" - exit 1 - ;; + status) + if [ -f /var/lock/${nombre}.lock ]; then + echo "${nombre}.py está en ejecución" + else + echo "${nombre}.py no está en ejecución" + fi + ;; - esac + *) + echo "Uso: /etc/init.d/${nombre} {start|stop|restart|status}" + exit 1 + ;; +esac - exit 0 -fi +exit 0