From 2fa7dd2eb1a2121d411f9a5d5a31a647af16df74 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Mon, 13 Mar 2023 02:55:20 +0100 Subject: [PATCH] Add modem-restart --- modem-restart | 38 ++++++++++++++++++++++++++++++++++++++ modem-restart.service | 11 +++++++++++ 2 files changed, 49 insertions(+) create mode 100755 modem-restart create mode 100644 modem-restart.service 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 diff --git a/modem-restart.service b/modem-restart.service new file mode 100644 index 0000000..eb44442 --- /dev/null +++ b/modem-restart.service @@ -0,0 +1,11 @@ +[Unit] +Description=Restarts eg25-manager if USB connection to the Quectel EG25 modem is lost + +[Service] +User=root +WorkingDirectory=/ +ExecStart=modem-restart +Restart=always + +[Install] +WantedBy=multi-user.target