aboutsummaryrefslogtreecommitdiff
path: root/modem-restart
diff options
context:
space:
mode:
Diffstat (limited to 'modem-restart')
-rwxr-xr-xmodem-restart38
1 files changed, 38 insertions, 0 deletions
diff --git a/modem-restart b/modem-restart
new file mode 100755
index 0000000..422ca54
--- /dev/null
+++ b/modem-restart
@@ -0,0 +1,38 @@
+#! /bin/sh
+
+is_modem_available()
+{
+ if [ -z "$(lsusb | grep "2c7c:0125")" ]; then
+ return 1
+ fi
+
+ return 0
+}
+
+is_data_available()
+{
+ if ! nmcli c show --active | grep -e internet -e gsm > /dev/null; then
+ return 1
+ fi
+
+ return 0
+}
+
+TRY=0
+while :; do
+ if ! is_modem_available ; then
+ TRY=$((TRY + 1))
+ echo $(date) Restarting modem, $TRY try
+ systemctl restart eg25-manager
+ systemd-inhibit --what=sleep --why="Modem reset" sleep 60
+ elif [ $TRY -ne 0 ]; then
+ echo $(date): Modem restarted successfully
+ TRY=0
+ elif ! is_data_available; then
+ echo $(date): Restarting mobile data
+ systemd-inhibit --what=sleep --why="Restart mobile data" sleep 5
+ nmcli c up internet
+ fi
+
+ sleep 5
+done