ppp0에 다시 연결할 때 sakis3g 및 UMTSkeeper를 사용하여 프로그램(스크립트)을 자동으로 다시 시작

ppp0에 다시 연결할 때 sakis3g 및 UMTSkeeper를 사용하여 프로그램(스크립트)을 자동으로 다시 시작

질문이 있습니다. 내가 사용하고 있는 하드웨어 및 소프트웨어: Raspberry pi, 3G 모뎀 - Huawei e1550, sakis3g 및 UMTSkeeper가 연결을 처리합니다. 나도 사용하고 있어요https://github.com/Lora-net/packet_forwarder내 프로젝트의 경우 부팅 시 자동으로 시작되고 3g 모뎀이 네트워크에 연결될 때까지 180초가 지연된 다음 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/. ppp 링크가 설정될 때 실행될 쉘 스크립트를 여기에 배치할 수 있습니다.

/etc/ppp/ip-up자세한 내용은 내용을 참조하시기 바랍니다.

관련 정보