#!/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 source /opt/idssys/mediamanager/defaults.inc if [ "${action}" != "update" ]; then echo "" echo -e "${idsCL[LightGreen]} MediaManager ${idsCL[Default]} ${idsCL[DarkGray]}(ver-${VERS})${idsCL[Default]}" DIVIDER . lightGreen fi 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(){ echo -e "${idsCL[LightCyan]}Stopping Services...${idsCL[Default]}" echo 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]}" echo } MMSTATUS(){ for srvc in "${SERVICES_CHECK[@]}"; do c=0; cw=36 spc='' spc1=$((${cw}-${#NM_SERVICES[${srvc}]})) until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done echo -en " ${NM_SERVICES[${srvc}]}$spc: " if [ "$(systemctl is-active ${srvc})" != "active" ]; then echo -e "${idsCL[Red]}Not Running${idsCL[Default]}" else echo -e "${idsCL[Green]}Running${idsCL[Default]}" fi done echo echo } 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;; status) MMSTATUS;; 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