#!/usr/bin/env bash # MediaManager Scripts action="$1" source /opt/idssys/defaults/colors.inc 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(){ /usr/sbin/service openvpn start 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* echo -e "${idsCL[Green]}All services have been started${idsCL[Default]}" } 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 echo -e "${idsCL[Red]}All services have been stopped${idsCL[Default]}" } case $action in start | check) if [ -f /opt/mm.stop ] && [ "${action}" = "check" ]; then echo -e "${idsCL[Yellow]}The system is currently stopped${idsCL[Default]}" exit 0 fi touch /opt/mm.stop MMSTART;; stop) touch /opt/mm.stop MMSTOP;; update);; *) echo -e "Usage: ${idsCL[LightCyan]}mm${idsCL[Default]} {" echo -e " ${idsCL[Yellow]}start${idsCL[Default]} --> Start services" echo -e " ${idsCL[Yellow]}stop${idsCL[Default]} --> Stop services" echo -e " ${idsCL[Yellow]}check${idsCL[Default]} --> Check for VPN and start services if needed" echo -e " ${idsCL[Yellow]}status${idsCL[Default]} --> Check service status" echo -e "}" echo "" echo "" exit 0;; esac exit 0