#!/usr/bin/env sh # This script toggles the modem monitor # It optionally takes a parameter "on" or "off" # forcing it to toggle only to that desired state if applicable. # It may also take a "reset" parameter that forces the # entire modem subsystem to reload # include common definitions # shellcheck source=scripts/core/sxmo_common.sh . "$(dirname "$0")/sxmo_common.sh" if [ "$1" = "reset" ]; then #does a hard reset of the entire modem echo "sxmo_modemmonitortoggle: forcing modem reset">&2 notify-send "Resetting modem, this may take a minute..." pkill -TERM -f sxmo_modemmonitor.sh sudo rc-service modemmanager stop sudo rc-service eg25-manager stop sleep 5 while ! rc-service eg25-manager status | grep -q started; do sudo rc-service eg25-manager start sleep 2 done sleep 5 sudo rc-service modemmanager start sleep 30 setsid -f sxmo_modemmonitor.sh & elif [ "$1" != "on" ] && pgrep -f sxmo_modemmonitor.sh; then pkill -TERM -f sxmo_modemmonitor.sh elif [ "$1" != "off" ] && ! pgrep -f sxmo_modemmonitor.sh; then setsid -f sxmo_modemmonitor.sh & fi rm "$NOTIFDIR"/incomingcall* # E.g. wait until process killed or started -- maybe there's a better way.. sleep 1 sxmo_statusbarupdate.sh