diff --git a/mm-scripts.sh b/mm-scripts.sh index 7cfe67b..f87db5d 100755 --- a/mm-scripts.sh +++ b/mm-scripts.sh @@ -9,6 +9,116 @@ source /opt/idssys/defaults/default.inc source /opt/idssys/settings/mediamanager.conf +IFS=, +SERVICES_CHECK=(${SERVICESCHECK}) +unset IFS + +OUT=`ip a show $VPN_INTERFACE up`; + +MMSTART(){ + + checked=false + cc=0 + until [ "${checked}" = "" ]; do + OUT=`ip a show $VPN_INTERFACE up`; + if [ ${#OUT} -ne 0 ]; then + checked="" + fi + if [ "${checked}" == "false" ] && [ ${cc} -eq 60 ]; then + if [ -f /opt/mm.vpn.fail ]; then + touch /opt/mm.vpn.fail2 + rm -f /opt/mm.vpn.fail + sleep 5m + rm -f /opt/mm.stop + exit 1 + elif [ -f /opt/mm.vpn.fail2 ]; then + exit 1 + else + touch /opt/mm.vpn.fail + sleep 1m + rm -f /opt/mm.stop + exit 1 + fi + fi + ((cc=${cc}+1)) + echo ${cc} + sleep 1s + done + for srvc in "${SERVICES_CHECK[@]}"; do + /usr/sbin/service ${srvc} start + done + rm -f /opt/mm.stop + rm -f /opt/mm.vpn.fail* +} + +MMSTOP(){ + for srvc in "${SERVICES_CHECK[@]}"; do + /usr/sbin/service ${srvc} stop & + done + checked=false + until [ "${checked}" = "" ]; do + if ! lsof -Pi :5858 -sTCP:LISTEN -t >/dev/null; then + if ! lsof -Pi :5555 -sTCP:LISTEN -t >/dev/null; then + if ! lsof -Pi :5656 -sTCP:LISTEN -t >/dev/null; then + checked="" + fi + fi + fi + done + /usr/sbin/service openvpn stop + +} + +if [[ ${1} = "start" ]]; then + touch /opt/mm.stop + /usr/sbin/service openvpn start + MMSTART + +elif [[ ${1} = "stop" ]]; then + touch /opt/mm.stop + MMSTOP + +elif [ ! -f /opt/mm.stop ]; then + if [[ ${#OUT} = 0 ]]; then + touch /opt/mm.stop + MMSTOP + MMSTART + + elif [ ! -f /opt/mm.stop ]; then + touch /opt/mm.stop + MMSTART + fi +fi + + +if [ ${action-x} ]; then + case $action in + start) + touch /opt/mm.stop + MMSTART;; + stop) + touch /opt/mm.stop + MMSTOP;; + check) + if [ ! -f /opt/mm.stop ]; then + for srvc in "${SERVICES_CHECK[@]}"; do + if [ "$(systemctl is-active ${srvc})" = "inactive" ]; then + /usr/sbin/service ${srvc} start + fi + done + fi + + *) + echo -e "Usage: ${idsCL[LightCyan]}mm${idsCL[Default]} {" + echo -e " ${idsCL[Yellow]}start${idsCL[Default]}" + echo -e " ${idsCL[Yellow]}stop${idsCL[Default]}" + echo -e "}" + echo "" + echo "" + exit 0;; + esac +fi + exit 0 \ No newline at end of file