diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-03-13 02:55:20 +0100 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-03-13 02:55:33 +0100 |
| commit | 2fa7dd2eb1a2121d411f9a5d5a31a647af16df74 (patch) | |
| tree | bb242e3e0e57858af8a989631e49c3043cf81af2 | |
| parent | 4911e897496d92af6b2d5105a7581bee4da8c5bf (diff) | |
Add modem-restart
| -rwxr-xr-x | modem-restart | 38 | ||||
| -rw-r--r-- | modem-restart.service | 11 |
2 files changed, 49 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 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 |
