使用 sakis3g、UMTSkeeper 重新连接到 ppp0 时自动重启程序(脚本)

使用 sakis3g、UMTSkeeper 重新连接到 ppp0 时自动重启程序(脚本)

我有个问题。我正在使用的硬件和软件:Raspberry pi、3G 调制解调器 - 华为 e1550、sakis3g 和 UMTSkeeper 来处理连接。我也在用https://github.com/Lora-net/packet_forwarder对于我的项目,它会在启动时自动启动,延迟 180 秒,以便 3g 调制解调器连接到网络,然后 packet_forwarder 将数据发送到我的服务器。它可以正常工作,直到 3g 调制解调器失去连接(启动后 2-3 小时,它可以重新连接)并且 UMTSkeeper 重新获得通信。此后,packet_forwarder 停止向服务器发送数据。在我看来,packet_forwarder 不知道如何监视网络连接状态,如果有任何丢失,那么它不会重新连接到网络。请帮我,当网络恢复时如何让它自己连接?

一些日志和信息:这是umtskeeper.log当它重新连接时:

----
2018-03-13 20:27:32 Testing connection...
2018-03-13 20:27:40 Success... we are online!
2018-03-13 22:11:39 Offline: Network device ppp0 not found or not connected. (n$
2018-03-13 22:11:43 Internet connection is DOWN. Calling Sakis3G connect...
  Sakis3G cmdLine: nice /home/pi/3g/sakis3g connect --sudo --console USBINTERFA$
  Sakis3G says...
  E1550 connected to KYIVSTAR (25503).
  Error: /tmp/sakis3gz.10107.sakis3g: line 3218: warning: command substitution:$

2018-03-13 22:12:11 Testing connection...
2018-03-13 22:12:20 Success... we are online!

这是如果配置对于 3g 调制解调器接口:

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.151.60.124  netmask 255.255.255.255  destination 10.64.64.64
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 106  bytes 7905 (7.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 108  bytes 7617 (7.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

这是tcpdump -AUq 端口 3000对于向服务器发送数据的端口(当 3g 调制解调器断开连接时,ppp0 接口从 ifconfig 列表中消失):

listening on ppp0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
-----
-----
tcpdump: pcap_loop: The interface went down
3124 packets captured
3124 packets received by filter
0 packets dropped by kernel

这是 packet_forwarder 的自动启动脚本:

#!/bin/bash
sleep 180
sleep 10
gpio mode 7 out
gpio write 7 1
sleep 0.5
gpio write 7 0
sleep 0.5
cd packet_forwarder/lora_pkt_fwd/
./lora_pkt_fwd
exit 0

答案1

正如您所说,如果他packet_forwarder自己无法监视 ppp 链接状态,您可能必须为他执行此操作。

packet_forwarder是检查状态并重新启动的好地方/etc/ppp/ip-up.d/。您可以在其中放置一个 shell 脚本,该脚本将在建立 ppp 链接时执行。

/etc/ppp/ip-up更多详情请参阅 的内容。

相关内容