diff --git a/Makefile b/Makefile index 025478d..a28d1d3 100644 --- a/Makefile +++ b/Makefile @@ -101,19 +101,26 @@ installbase : $(BASE_PROGRAMS) gwys.txt qn.cfg systemctl daemon-reload systemctl start qnlink.service -installrelay : qnrelay +installrelay : qnrelay $(MMPATH)/MMDVMHost $(MMPATH)/MMDVM$(MODULE).qn ######### QnetRelay ######### /bin/ln -f qnrelay $(BINDIR)/qnrelay$(MODULE) - /bin/cp -f system/qnrelay$(MODULE).service $(SYSDIR) + sed -e "s/XXX/qnrelay$(MODULE)/" system/qnrelay.service > $(SYSDIR)/qnrelay$(MODULE) systemctl enable qnrelay$(MODULE).service systemctl daemon-reload systemctl start qnrelay$(MODULE).service ######### MMDVMHost ######### + /bin/ln -f $(MMPATH)/MMDVMHost $(BINDIR)/MMDVMHost$(MODULE) + /bin/ln -s $(shell pwd)/$(MMPATH)/MMDVM$(MODULE).qn $(CFGDIR) + sed -e "s/XXX/MMDVMHost$(MODULE)" -e "s/YYY/MMDVM$(MODULE).qn" system/mmdvm.service > $(SYSDIR)/mmdvm$(MODULE).service + /bin/cp -f system/mmdvm.timer $(SYSDIR)/mmdvm$(MODULE) + systemctl enable mmdvm$(MODULE).timer + systemctl daemon-reload + systemctl start mmdvm$(MODULE).service installitap : qnitap ######### QnetITAP ######### /bin/ln -f qnitap $(BINDIR)/qnitap$(MODULE) - /bin/cp -f system/qnitap$(MODULE).service $(SYSDIR) + sed -e "s/XXX/qnitap$(MODULE)/" system/qnitap.service > $(SYSDIR)/qnitap$(MODULE).service systemctl enable qnitap$(MODULE).service systemctl daemon-reload systemctl start qnitap$(MODULE).service @@ -121,7 +128,7 @@ installitap : qnitap installdvap : qndvap ######### QnetDVAP ######### /bin/ln -f qndvap $(BINDIR)/qndvap$(MODULE) - /bin/cp -f system/qndvap$(MODULE).service $(SYSDIR) + sed -e "s/XXX/qndvap$(MODULE)/" system/qndvap.service > $(SYSDIR)/qndvap$(MODULE).service systemctl enable qndvap$(MODULE).service systemctl daemon-reload systemctl start qndvap$(MODULE).service @@ -129,7 +136,7 @@ installdvap : qndvap installdvrptr : qndvrptr ######### QnetDVRPTR ######### /bin/ln -f qndvrptr $(BINDIR)/qndvrptr$(MODULE) - /bin/cp -f system/qndvrptr$(MODULE).service $(SYSDIR) + sed -e "s/XXX/qndvrptr$(MODULE)" system/qndvrptr.service > $(SYSDIR)/qndvrptr$(MODULE).service systemctl enable qndvrptr$(MODULE).service systemctl daemon-reload systemctl start qndvrptr$(MODULE).service @@ -141,24 +148,6 @@ installdtmf : qndtmf systemctl daemon-reload systemctl start qndtmf.service -installmmdvm : $(MMPATH)/MMDVMHost $(MMPATH)/MMDVM$(MODULE).qn - /bin/ln -f $(MMPATH)/MMDVMHost $(BINDIR)/MMDVMHost$(MODULE) - /bin/ln -s $(shell pwd)/$(MMPATH)/MMDVM$(MODULE).qn $(CFGDIR) - /bin/cp -f system/mmdvm$(MODULE).service $(SYSDIR) - /bin/cp -f system/mmdvm.timer $(SYSDIR)/mmdvm$(MODULE).timer - systemctl enable mmdvm$(MODULE).timer - systemctl daemon-reload - systemctl start mmdvm$(MODULE).service - -uninstallmmdvm : - systemctl stop mmdvm.service - systemctl disable mmdvm.timer - /bin/rm -f $(SYSDIR)/mmdvm.service - /bin/rm -f $(SYSDIR)/mmdvm$(MODULE).timer - /bin/rm -f $(BINDIR)/MMDVMHost - /bin/rm -f $(CFGDIR)/MMDVM.qn - sudo systemctl daemon-reload - uninstallbase : ######### QnetGateway ######### systemctl stop qngateway.service @@ -186,6 +175,14 @@ uninstallrelay : /bin/rm -f $(SYSDIR)/qnrelay$(MODULE).service /bin/rm -f $(BINDIR)/qnrelay$(MODULE) systemctl daemon-reload + ######### MMDVMHost ########## + systemctl stop mmdvm.service + systemctl disable mmdvm.timer + /bin/rm -f $(SYSDIR)/mmdvm$(MODULE).service + /bin/rm -f $(SYSDIR)/mmdvm$(MODULE).timer + /bin/rm -f $(BINDIR)/MMDVMHost$(MODULE) + /bin/rm -f $(CFGDIR)/MMDVM$(MODULE).qn + sudo systemctl daemon-reload uninstallitap : ######### QnetITAP ######### diff --git a/qnadmin b/qnadmin index 46c68b5..36b5e01 100755 --- a/qnadmin +++ b/qnadmin @@ -128,18 +128,29 @@ BaseStatus () { } ModuleStatus () { - local LoadState SubState mcvar process + local LoadState SubState mcvar if [ -z ${3} ]; then ModuleState[$1]='EMPTY' + MMDVMState[$1]='EMPTY' else mcvar="n${3}" - process="qn$3" - if [[ "$process" == 'qnmmdvm' ]]; then process='qnrelay'; fi + ModuleProcess[$1]="qn$3" + if [[ "${ModuleProcess[$1]}" == 'qnmmdvm' ]]; then + ModuleProcess[$1]='qnrelay' + MMDVMProcess[$1]='mmdvm' + MMDVMState[$1]='not empty' + else + MMDVMState[$1]='EMPTY' + MMDVMProcess[$1]='' + fi if [[ ${!mcvar} > 1 ]]; then - process="${process}${2}" + ModuleProcess[$1]="${ModuleProcess[$1]}${2}" + if [[ "${MMDVMProcess[$1]}" == 'mmdvm' ]]; then + MMDVMProcess[$1]="${MMDVMProcess[$1]}${2}" + fi fi - LoadState=$( systemctl show -p LoadState --value $process ) - SubState=$( systemctl show -p SubState --value $process ) + LoadState=$( systemctl show -p LoadState --value ${ModuleProcess[$1]} ) + SubState=$( systemctl show -p SubState --value ${ModuleProcess[$1]} ) if [[ "$LoadState" == "loaded" ]]; then if [[ $SubState == "running" ]]; then ModuleState[$1]='running' @@ -149,23 +160,23 @@ ModuleStatus () { else ModuleState[$1]='not installed' fi + if [[ "${MMDVMState[$1]}" != 'EMPTY' ]]; then + LoadState=$( systemctl show -p LoadState --value ${MMDVMProcess[$1]} ) + SubState=$( systemctl show -p SubState --value ${MMDVMProcess[$1]} ) + if [[ "$LoadState" == "loaded" ]]; then + if [[ $SubState == "running" ]]; then + MMDVMState[$1]='running' + else + MMDVMState[$1]='stopped' + fi + else + MMDVMState[$1]='not installed' + fi + fi echo "Module ${2^^} - ${3^^} is ${ModuleState[$1]}" fi } -GetModuleProcess () { - local nvar - process=$1 - nvar="n$process" - if [[ $process == 'mmdvm' ]]; then - process='relay' - fi - process="qn$process" - if [ ${!nvar} -gt 1 ]; then - process=${process}${1} - fi -} - Header () { local count count=$( ps -aux | grep qn | wc -l ) @@ -201,27 +212,45 @@ LogMenu () { echo " qndtmf is not running" fi if [[ ${ModuleState[0]} != 'EMPTY' ]]; then - GetModuleProcess $module_a if [[ ${ModuleState[0]} == 'running' ]]; then - echo " a : $process Log" + echo " a : ${ModuleProcess[0]} Log" else - echo " $process is not running" + echo " ${ModuleProcess[0]} is not running" fi fi if [[ ${ModuleState[1]} != 'EMPTY' ]]; then - GetModuleProcess $module_b if [[ ${ModuleState[1]} == 'running' ]]; then - echo " b : $process Log" + echo " b : ${ModuleProcess[1]} Log" else - echo " $process is not running" + echo " ${ModuleProcess[1]} is not running" fi fi if [[ ${ModuleState[2]} != 'EMPTY' ]]; then - GetModuleProcess $module_c if [[ ${ModuleState[2]} == 'running' ]]; then - echo " c : $process Log" + echo " c : ${ModuleProcess[2]} Log" + else + echo " ${ModuleProcess[2]} is not running" + fi + fi + if [[ ${MMDVMState[0]} != 'EMPTY' ]]; then + if [[ ${MMDVMState[0]} == 'running' ]]; then + echo " x : ${MMDVMProcess[0]} Log" + else + echo " ${MMDVMProcess[0]} is not running" + fi + fi + if [[ ${MMDVMState[1]} != 'EMPTY' ]]; then + if [[ ${MMDVMState[1]} == 'running' ]]; then + echo " y : ${MMDVMProcess[1]} Log" else - echo " $process is not running" + echo " ${MMDVMProcess[1]} is not running" + fi + fi + if [[ ${MMDVMState[2]} != 'EMPTY' ]]; then + if [[ ${MMDVMState[2]} == 'running' ]]; then + echo " z : ${MDVMProcess[2]} Log" + else + echo " ${MMDVMProcess[2]} is not running" fi fi echo @@ -236,14 +265,17 @@ LogMenu () { elif [[ "$ans" == d* ]] && [[ "$DTMFState" == 'running' ]]; then sudo journalctl -u qndtmf -f elif [[ "$ans" == a* ]] && [[ "${ModuleState[0]}" == 'running' ]]; then - GetModuleProcess $module_a - sudo journalctl -u $process -f + sudo journalctl -u ${ModuleProcess[0]} -f elif [[ "$ans" == b* ]] && [[ "${ModuleState[1]}" == 'running' ]]; then - GetModuleProcess $module_b - sudo journalctl -u $process -f + sudo journalctl -u ${ModuleProcess[1]} -f elif [[ "$ans" == c* ]] && [[ "${ModuleState[2]}" == 'running' ]]; then - GetModuleProcess $module_c - sudo journalctl -u $process -f + sudo journalctl -u ${ModuleProcess[2]} -f + elif [[ "$ans" == x* ]] && [[ "${MMDVMState[0]}" == 'running' ]]; then + sudo journalctl -u ${MMDVMProcess[0]} -f + elif [[ "$ans" == y* ]] && [[ "${MMDVMState[1]}" == 'running' ]]; then + sudo journalctl -u ${MMDVMProcess[1]} -f + elif [[ "$ans" == z* ]] && [[ "${MMDVMState[2]}" == 'running' ]]; then + sudo journalctl -u ${MMDVMProcess[2]} -f fi done ans='' @@ -286,6 +318,21 @@ MaintenanceMenu () { elif [[ "${ModuleState[2]}" == 'stopped' ]]; then echo " c : Start Module C" fi + if [[ "${MMDVMState[0]}" == 'running' ]]; then + echo " x : Stop MMDVMHost A" + elif [[ "${MMDVMState[0]}" == 'stopped' ]]; then + echo " x : Start MMDVMHost A" + fi + if [[ "${MMDVMState[1]}" == 'running' ]]; then + echo " y : Stop MMDVMHost B" + elif [[ "${MMDVMState[1]}" == 'stopped' ]]; then + echo " y : Start MMDVMHost B" + fi + if [[ "${MMDVMState[2]}" == 'running' ]]; then + echo " z : Stop MMDVMHost C" + elif [[ "${MMDVMState[2]}" == 'stopped' ]]; then + echo " z : Start MMDVMHost C" + fi echo echo " q : Return to main Menu" echo @@ -313,27 +360,45 @@ MaintenanceMenu () { fi BaseStatus elif [[ "$ans" == a* ]] && [ -n $module_a ]; then - GetModuleProcess $module_a if [[ "${ModuleState[0]}" == 'running' ]]; then - sudo systemctl stop $process + sudo systemctl stop ${ModuleProcess[0]} elif [[ "${ModuleState[0]}" == 'stopped' ]]; then - sudo systemctl start $process + sudo systemctl start ${ModuleProcess[0]} fi ModuleStatus 0 a $module_a elif [[ "$ans" == b* ]] && [ -n $module_b ]; then - GetModuleProcess $module_b if [[ "${ModuleState[1]}" == 'running' ]]; then - sudo systemctl stop $process + sudo systemctl stop ${ModuleProcess[1]} elif [[ "${ModuleState[1]}" == 'stopped' ]]; then - sudo systemctl start $process + sudo systemctl start ${ModuleProcess[1]} fi ModuleStatus 1 b $module_b elif [[ "$ans" == c* ]] && [ -n $module_c ]; then - GetModuleProcess $module_c if [[ "${ModuleState[2]}" == 'running' ]]; then - sudo systemctl stop $process + sudo systemctl stop ${ModuleProcess[2]} elif [[ "${ModuleState[2]}" == 'stopped' ]]; then - sudo systemctl start $process + sudo systemctl start ${ModuleProcess[2]} + fi + ModuleStatus 2 c $module_c + elif [[ "$ans" == x* ]] && [ -n $module_a ]; then + if [[ "${MMDVMState[0]}" == 'running' ]]; then + sudo systemctl stop ${MMDVMProcess[0]} + elif [[ "${MMDVMState[0]}" == 'stopped' ]]; then + sudo systemctl start ${MMDVMProcess[0]} + fi + ModuleStatus 0 a $module_a + elif [[ "$ans" == y* ]] && [ -n $module_b ]; then + if [[ "${MMDVMState[1]}" == 'running' ]]; then + sudo systemctl stop ${MMDVMProcess[1]} + elif [[ "${MMDVMState[1]}" == 'stopped' ]]; then + sudo systemctl start ${MMDVMProcess[1]} + fi + ModuleStatus 1 b $module_b + elif [[ "$ans" == z* ]] && [ -n $module_c ]; then + if [[ "${MMDVMState[2]}" == 'running' ]]; then + sudo systemctl stop ${MMDVMProcess[2]} + elif [[ "${MMDVMState[2]}" == 'stopped' ]]; then + sudo systemctl start ${MMDVMProcess[2]} fi ModuleStatus 2 c $module_c fi diff --git a/system/mmdvm.service b/system/mmdvm.service index 3460508..75294d2 100644 --- a/system/mmdvm.service +++ b/system/mmdvm.service @@ -4,7 +4,7 @@ After=systemd-user-session.service qnrelay.service [Service] Type=simple -ExecStart=/usr/local/bin/MMDVMHost /usr/local/etc/MMDVM.qn +ExecStart=/usr/local/bin/XXX /usr/local/etc/YYY.qn Restart=always [Install] diff --git a/system/qndvap.service b/system/qndvap.service index 525d01c..1f425e0 100644 --- a/system/qndvap.service +++ b/system/qndvap.service @@ -4,7 +4,7 @@ After=systemd-user-session.service qngateway.service [Service] Type=simple -ExecStart=/usr/local/bin/qndvap /usr/local/etc/qn.cfg +ExecStart=/usr/local/bin/XXX /usr/local/etc/qn.cfg Restart=always [Install] diff --git a/system/qndvrptr.service b/system/qndvrptr.service index ae21d75..58cd008 100644 --- a/system/qndvrptr.service +++ b/system/qndvrptr.service @@ -4,7 +4,7 @@ After=systemd-user-session.service qngateway.service [Service] Type=simple -ExecStart=/usr/local/bin/qndvrptr /usr/local/etc/qn.cfg +ExecStart=/usr/local/bin/XXX /usr/local/etc/qn.cfg Restart=always [Install] diff --git a/system/qnitap.service b/system/qnitap.service index ebe7ee6..3930c0e 100644 --- a/system/qnitap.service +++ b/system/qnitap.service @@ -4,7 +4,7 @@ After=systemd-user-session.service qngateway.service [Service] Type=simple -ExecStart=/usr/local/bin/qnitap /usr/local/etc/qn.cfg +ExecStart=/usr/local/bin/XXX /usr/local/etc/qn.cfg Restart=always [Install] diff --git a/system/qnrelay.service b/system/qnrelay.service index 4d2f2b9..96e011d 100644 --- a/system/qnrelay.service +++ b/system/qnrelay.service @@ -4,7 +4,7 @@ After=systemd-user-session.service qngateway.service [Service] Type=simple -ExecStart=/usr/local/bin/qnrelay /usr/local/etc/qn.cfg +ExecStart=/usr/local/bin/XXX /usr/local/etc/qn.cfg Restart=always [Install]