AETHER-686 Reboot when the serial device is not loaded

Also, don't reboot but restart the service when disconnect action failed.

Change-Id: Ia06bc73d0a2643ff8ca8737c7985fbf9825e37de
diff --git a/edge-monitoring/agent_modem/edge-mon-agent.service b/edge-monitoring/agent_modem/edge-mon-agent.service
index 1d6ba22..7fa743d 100644
--- a/edge-monitoring/agent_modem/edge-mon-agent.service
+++ b/edge-monitoring/agent_modem/edge-mon-agent.service
@@ -5,7 +5,7 @@
 [Service]
 Environment=CONFIG_FILE=/home/pi/aether-monitoring/edge-monitoring/agent_modem/config.json
 Type=simple
-ExecStartPre=/bin/sleep 30
+ExecStartPre=/bin/sleep 60
 ExecStart=/usr/bin/python3 /home/pi/aether-monitoring/edge-monitoring/agent_modem/edge_monitoring_agent_modem.py
 Restart=on-failure
 
diff --git a/edge-monitoring/agent_modem/edge_monitoring_agent_modem.py b/edge-monitoring/agent_modem/edge_monitoring_agent_modem.py
index bb41560..ad3f59f 100644
--- a/edge-monitoring/agent_modem/edge_monitoring_agent_modem.py
+++ b/edge-monitoring/agent_modem/edge_monitoring_agent_modem.py
@@ -198,7 +198,7 @@
         modem.connect()
     except serial.serialutil.SerialException as e:
         logging.error("Failed to connect the modem for %s", e)
-        sys.exit(1)
+        os.system("sudo shutdown -r now")
 
     success = os.system("sudo ip route replace {}/32 via {}".format(
         CONF.ping_to, CONF.modem.ip_addr))
@@ -212,7 +212,7 @@
 
         if cp_state is State.error:
             logging.error("Modem is in error state.")
-            os.system("sudo shutdown -r now")
+            sys.exit(1)
 
         report_status(cp_state, up_state)
         time.sleep(CONF.report_interval)