From 8737811538ca30df95c13a61d60558b2ad24a4a9 Mon Sep 17 00:00:00 2001 From: "Esteban Mackay Q." Date: Mon, 3 Feb 2025 01:01:00 -0500 Subject: [PATCH] Update menu-dvs --- menu/menu-dvs | 377 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 261 insertions(+), 116 deletions(-) diff --git a/menu/menu-dvs b/menu/menu-dvs index 21ea449..2c2728c 100644 --- a/menu/menu-dvs +++ b/menu/menu-dvs @@ -35,38 +35,85 @@ fi case $choix in 1) -# Lista de servicios a reiniciar +# Directorio donde se encuentran los archivos de servicio +service_dir="/lib/systemd/system/" + +# Lista de servicios base servicios="md380-emu.service analog_bridge.service mmdvm_bridge.service nxdngateway.service p25gateway.service ysfgateway.service quantar_bridge.service ircddbgatewayd.service p25parrot.service ysfparrot.service nxdnparrot.service" -# Primero, detener todos los servicios -for servicio in $servicios; do - if systemctl is-enabled "$servicio" &>/dev/null || systemctl is-active "$servicio" &>/dev/null; then - echo "Deteniendo $servicio" - sudo systemctl stop "$servicio" +# Función para detener un servicio +stop_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Deteniendo $service_name" + sudo systemctl stop "$service_name" > /dev/null 2>&1 fi +} + +# Función para iniciar y habilitar un servicio +start_and_enable_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Iniciando y habilitando $service_name" + sudo systemctl start "$service_name" > /dev/null 2>&1 + sudo systemctl enable "$service_name" > /dev/null 2>&1 + fi +} + +# Detener todos los servicios base primero +for servicio in $servicios; do + stop_service "$servicio" done -# Esperar un momento para asegurarse de que todos los servicios se detengan completamente +# Detener todos los servicios enumerados +for i in {01..40}; do + stop_service "mmdvm_bridge$i.service" + stop_service "analog_bridge$i.service" + stop_service "md380-emu$i.service" +done + +# Esperar 5 segundos para asegurar que todos los servicios se detengan sleep 5 -# Luego, iniciar todos los servicios +# Iniciar y habilitar todos los servicios base for servicio in $servicios; do - echo "Iniciando $servicio" - sudo systemctl start "$servicio" - sudo systemctl enable "$servicio" &>/dev/null + start_and_enable_service "$servicio" +done + +# Iniciar y habilitar todos los servicios enumerados +for i in {01..40}; do + start_and_enable_service "mmdvm_bridge$i.service" + start_and_enable_service "analog_bridge$i.service" + start_and_enable_service "md380-emu$i.service" done ;; 2) -# Lista de servicios a reiniciar +# Directorio donde se encuentran los archivos de servicio +service_dir="/lib/systemd/system/" + +# Lista de servicios base servicios="md380-emu.service analog_bridge.service mmdvm_bridge.service nxdngateway.service p25gateway.service ysfgateway.service quantar_bridge.service ircddbgatewayd.service p25parrot.service ysfparrot.service nxdnparrot.service" -# Recorre la lista de servicios y verifica si están activos -for servicio in $servicios; do - if systemctl is-enabled "$servicio" &>/dev/null || systemctl is-active "$servicio" &>/dev/null; then - echo "stop $servicio" - sudo systemctl disable "$servicio" - sudo systemctl stop "$servicio" +# Función para detener y deshabilitar un servicio +stop_and_disable_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Deteniendo y deshabilitando $service_name" + sudo systemctl stop "$service_name" > /dev/null 2>&1 + sudo systemctl disable "$service_name" > /dev/null 2>&1 fi +} + +# Detener y deshabilitar todos los servicios base +for servicio in $servicios; do + stop_and_disable_service "$servicio" +done + +# Detener y deshabilitar todos los servicios enumerados +for i in {01..40}; do + stop_and_disable_service "mmdvm_bridge$i.service" + stop_and_disable_service "analog_bridge$i.service" + stop_and_disable_service "md380-emu$i.service" done rm /var/log/mmdvm/*;; 3) @@ -275,38 +322,85 @@ fi case $choix in 1) -# Lista de servicios a reiniciar +# Directorio donde se encuentran los archivos de servicio +service_dir="/lib/systemd/system/" + +# Lista de servicios base servicios="md380-emu.service analog_bridge.service mmdvm_bridge.service nxdngateway.service p25gateway.service ysfgateway.service quantar_bridge.service ircddbgatewayd.service p25parrot.service ysfparrot.service nxdnparrot.service" -# Primero, detener todos los servicios -for servicio in $servicios; do - if systemctl is-enabled "$servicio" &>/dev/null || systemctl is-active "$servicio" &>/dev/null; then - echo "Deteniendo $servicio" - sudo systemctl stop "$servicio" +# Función para detener un servicio +stop_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Deteniendo $service_name" + sudo systemctl stop "$service_name" > /dev/null 2>&1 fi +} + +# Función para iniciar y habilitar un servicio +start_and_enable_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Iniciando y habilitando $service_name" + sudo systemctl start "$service_name" > /dev/null 2>&1 + sudo systemctl enable "$service_name" > /dev/null 2>&1 + fi +} + +# Detener todos los servicios base primero +for servicio in $servicios; do + stop_service "$servicio" done -# Esperar un momento para asegurarse de que todos los servicios se detengan completamente +# Detener todos los servicios enumerados +for i in {01..40}; do + stop_service "mmdvm_bridge$i.service" + stop_service "analog_bridge$i.service" + stop_service "md380-emu$i.service" +done + +# Esperar 5 segundos para asegurar que todos los servicios se detengan sleep 5 -# Luego, iniciar todos los servicios +# Iniciar y habilitar todos los servicios base for servicio in $servicios; do - echo "Iniciando $servicio" - sudo systemctl start "$servicio" - sudo systemctl enable "$servicio" &>/dev/null + start_and_enable_service "$servicio" +done + +# Iniciar y habilitar todos los servicios enumerados +for i in {01..40}; do + start_and_enable_service "mmdvm_bridge$i.service" + start_and_enable_service "analog_bridge$i.service" + start_and_enable_service "md380-emu$i.service" done ;; 2) -# Lista de servicios a reiniciar +# Directorio donde se encuentran los archivos de servicio +service_dir="/lib/systemd/system/" + +# Lista de servicios base servicios="md380-emu.service analog_bridge.service mmdvm_bridge.service nxdngateway.service p25gateway.service ysfgateway.service quantar_bridge.service ircddbgatewayd.service p25parrot.service ysfparrot.service nxdnparrot.service" -# Recorre la lista de servicios y verifica si están activos -for servicio in $servicios; do - if systemctl is-enabled "$servicio" &>/dev/null || systemctl is-active "$servicio" &>/dev/null; then - echo "stop $servicio" - sudo systemctl disable "$servicio" - sudo systemctl stop "$servicio" +# Función para detener y deshabilitar un servicio +stop_and_disable_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Deteniendo y deshabilitando $service_name" + sudo systemctl stop "$service_name" > /dev/null 2>&1 + sudo systemctl disable "$service_name" > /dev/null 2>&1 fi +} + +# Detener y deshabilitar todos los servicios base +for servicio in $servicios; do + stop_and_disable_service "$servicio" +done + +# Detener y deshabilitar todos los servicios enumerados +for i in {01..40}; do + stop_and_disable_service "mmdvm_bridge$i.service" + stop_and_disable_service "analog_bridge$i.service" + stop_and_disable_service "md380-emu$i.service" done rm /var/log/mmdvm/*;; 3) @@ -497,38 +591,85 @@ fi case $choix in 1) -# Lista de servicios a reiniciar +# Directorio donde se encuentran los archivos de servicio +service_dir="/lib/systemd/system/" + +# Lista de servicios base servicios="md380-emu.service analog_bridge.service mmdvm_bridge.service nxdngateway.service p25gateway.service ysfgateway.service quantar_bridge.service ircddbgatewayd.service p25parrot.service ysfparrot.service nxdnparrot.service" -# Primero, detener todos los servicios -for servicio in $servicios; do - if systemctl is-enabled "$servicio" &>/dev/null || systemctl is-active "$servicio" &>/dev/null; then - echo "Deteniendo $servicio" - sudo systemctl stop "$servicio" +# Función para detener un servicio +stop_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Deteniendo $service_name" + sudo systemctl stop "$service_name" > /dev/null 2>&1 fi +} + +# Función para iniciar y habilitar un servicio +start_and_enable_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Iniciando y habilitando $service_name" + sudo systemctl start "$service_name" > /dev/null 2>&1 + sudo systemctl enable "$service_name" > /dev/null 2>&1 + fi +} + +# Detener todos los servicios base primero +for servicio in $servicios; do + stop_service "$servicio" done -# Esperar un momento para asegurarse de que todos los servicios se detengan completamente +# Detener todos los servicios enumerados +for i in {01..40}; do + stop_service "mmdvm_bridge$i.service" + stop_service "analog_bridge$i.service" + stop_service "md380-emu$i.service" +done + +# Esperar 5 segundos para asegurar que todos los servicios se detengan sleep 5 -# Luego, iniciar todos los servicios +# Iniciar y habilitar todos los servicios base for servicio in $servicios; do - echo "Iniciando $servicio" - sudo systemctl start "$servicio" - sudo systemctl enable "$servicio" &>/dev/null + start_and_enable_service "$servicio" +done + +# Iniciar y habilitar todos los servicios enumerados +for i in {01..40}; do + start_and_enable_service "mmdvm_bridge$i.service" + start_and_enable_service "analog_bridge$i.service" + start_and_enable_service "md380-emu$i.service" done ;; 2) -# Lista de servicios a reiniciar +# Directorio donde se encuentran los archivos de servicio +service_dir="/lib/systemd/system/" + +# Lista de servicios base servicios="md380-emu.service analog_bridge.service mmdvm_bridge.service nxdngateway.service p25gateway.service ysfgateway.service quantar_bridge.service ircddbgatewayd.service p25parrot.service ysfparrot.service nxdnparrot.service" -# Recorre la lista de servicios y verifica si están activos -for servicio in $servicios; do - if systemctl is-enabled "$servicio" &>/dev/null || systemctl is-active "$servicio" &>/dev/null; then - echo "stop $servicio" - sudo systemctl disable "$servicio" - sudo systemctl stop "$servicio" +# Función para detener y deshabilitar un servicio +stop_and_disable_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Deteniendo y deshabilitando $service_name" + sudo systemctl stop "$service_name" > /dev/null 2>&1 + sudo systemctl disable "$service_name" > /dev/null 2>&1 fi +} + +# Detener y deshabilitar todos los servicios base +for servicio in $servicios; do + stop_and_disable_service "$servicio" +done + +# Detener y deshabilitar todos los servicios enumerados +for i in {01..40}; do + stop_and_disable_service "mmdvm_bridge$i.service" + stop_and_disable_service "analog_bridge$i.service" + stop_and_disable_service "md380-emu$i.service" done rm /var/log/mmdvm/*;; 3) @@ -802,38 +943,85 @@ fi case $choix in 1) -# Lista de servicios a reiniciar +# Directorio donde se encuentran los archivos de servicio +service_dir="/lib/systemd/system/" + +# Lista de servicios base servicios="md380-emu.service analog_bridge.service mmdvm_bridge.service nxdngateway.service p25gateway.service ysfgateway.service quantar_bridge.service ircddbgatewayd.service p25parrot.service ysfparrot.service nxdnparrot.service" -# Primero, detener todos los servicios -for servicio in $servicios; do - if systemctl is-enabled "$servicio" &>/dev/null || systemctl is-active "$servicio" &>/dev/null; then - echo "Deteniendo $servicio" - sudo systemctl stop "$servicio" +# Función para detener un servicio +stop_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Deteniendo $service_name" + sudo systemctl stop "$service_name" > /dev/null 2>&1 fi +} + +# Función para iniciar y habilitar un servicio +start_and_enable_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Iniciando y habilitando $service_name" + sudo systemctl start "$service_name" > /dev/null 2>&1 + sudo systemctl enable "$service_name" > /dev/null 2>&1 + fi +} + +# Detener todos los servicios base primero +for servicio in $servicios; do + stop_service "$servicio" done -# Esperar un momento para asegurarse de que todos los servicios se detengan completamente +# Detener todos los servicios enumerados +for i in {01..40}; do + stop_service "mmdvm_bridge$i.service" + stop_service "analog_bridge$i.service" + stop_service "md380-emu$i.service" +done + +# Esperar 5 segundos para asegurar que todos los servicios se detengan sleep 5 -# Luego, iniciar todos los servicios +# Iniciar y habilitar todos los servicios base for servicio in $servicios; do - echo "Iniciando $servicio" - sudo systemctl start "$servicio" - sudo systemctl enable "$servicio" &>/dev/null + start_and_enable_service "$servicio" +done + +# Iniciar y habilitar todos los servicios enumerados +for i in {01..40}; do + start_and_enable_service "mmdvm_bridge$i.service" + start_and_enable_service "analog_bridge$i.service" + start_and_enable_service "md380-emu$i.service" done ;; 2) -# Lista de servicios a reiniciar +# Directorio donde se encuentran los archivos de servicio +service_dir="/lib/systemd/system/" + +# Lista de servicios base servicios="md380-emu.service analog_bridge.service mmdvm_bridge.service nxdngateway.service p25gateway.service ysfgateway.service quantar_bridge.service ircddbgatewayd.service p25parrot.service ysfparrot.service nxdnparrot.service" -# Recorre la lista de servicios y verifica si están activos -for servicio in $servicios; do - if systemctl is-enabled "$servicio" &>/dev/null || systemctl is-active "$servicio" &>/dev/null; then - echo "stop $servicio" - sudo systemctl disable "$servicio" - sudo systemctl stop "$servicio" +# Función para detener y deshabilitar un servicio +stop_and_disable_service() { + local service_name="$1" + if [ -f "$service_dir$service_name" ]; then + echo "Deteniendo y deshabilitando $service_name" + sudo systemctl stop "$service_name" > /dev/null 2>&1 + sudo systemctl disable "$service_name" > /dev/null 2>&1 fi +} + +# Detener y deshabilitar todos los servicios base +for servicio in $servicios; do + stop_and_disable_service "$servicio" +done + +# Detener y deshabilitar todos los servicios enumerados +for i in {01..40}; do + stop_and_disable_service "mmdvm_bridge$i.service" + stop_and_disable_service "analog_bridge$i.service" + stop_and_disable_service "md380-emu$i.service" done rm /var/log/mmdvm/*;; 3) @@ -1064,50 +1252,7 @@ exit 0 EOFR fi -# Función para verificar si un servicio existe -service_exists() { - local service_name=$1 - # Usamos 'timeout' para evitar que el comando se quede bloqueado - timeout 1s sudo systemctl status "$service_name" >/dev/null 2>&1 - return $? -} - -# Detener todos los servicios que estén activos o habilitados (primer bucle) -for i in {01..40}; do - service_name="mmdvm_bridge$i.service" - - # Verifica si el servicio existe - if service_exists "$service_name"; then - # Verifica si el servicio está activo O habilitado (de forma silenciosa) - if sudo systemctl is-active "$service_name" >/dev/null 2>&1 || sudo systemctl is-enabled "$service_name" >/dev/null 2>&1; then - # Detener el servicio (de forma silenciosa) - sudo systemctl stop "$service_name" >/dev/null 2>&1 - fi - fi -done - -# Modificar los archivos de configuración (segundo bucle) -for i in {01..40}; do - archivo="/opt/user$i/MMDVM_Bridge.ini" - if [ -e "$archivo" ]; then - sed -i "s/FileRoot=.*/FileRoot=MMDVM_Bridge$i/g" "$archivo" - fi -done 2>/dev/null - -# Iniciar todos los servicios habilitados (tercer bucle) -for i in {01..40}; do - service_name="mmdvm_bridge$i.service" - - # Verifica si el servicio existe - if service_exists "$service_name"; then - # Verifica si el servicio está habilitado (de forma silenciosa) - if sudo systemctl is-enabled "$service_name" >/dev/null 2>&1; then - # Iniciar el servicio (de forma silenciosa) - sudo systemctl start "$service_name" >/dev/null 2>&1 - sudo systemctl enable "$service_name" >/dev/null 2>&1 - fi - fi -done +# if [ -f "/usr/local/dvs/dvsmu" ]; then sed '132s/^#//' /usr/local/dvs/dvsmu -i cp /usr/local/dvs/dvsmu /usr/local/bin/dvsmu