Autorestart programa (script) ao reconectar a ppp0 com sakis3g, UMTSkeeper

1

Eu tenho um problema. Hardware e software que estou usando: Raspberry pi, modem 3G - Huawei e1550, sakis3g e UMTSkeeper para lidar com conexão. Também estou usando o link para o meu projeto, ele inicia automaticamente na inicialização com um atraso de 180 segundos para o modem 3g para se conectar à rede do que packet_forwarder enviar dados para o meu servidor. Ele funciona bem até que o modem 3g perca sua conexão (2-3 horas após a inicialização funcionará do que se reconectar) e o UMTSkeeper recupera a comunicação. Depois disso, o packet_forwarder pára de enviar dados para o servidor. Parece-me que o packet_forwarder não sabe como monitorar o estado da conexão de rede e, se houver alguma queda, ele não se reconecta à rede. Por favor me ajude, como fazer para se conectar quando a rede é restaurada?

Alguns registros e informações: Aqui está um umtskeeper.log quando é reconectado:

----
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!

Aqui está ifconfig para a interface do modem 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

Aqui está tcpdump -UUq port 3000 para a porta que envia dados para o servidor (e quando o modem 3g desconecta, a interface ppp0 desaparece da lista 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

Aqui está o script autostart para 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
    
por Dany Hovard 13.03.2018 / 22:44

1 resposta

0

Como você disse, se o packet_forwarder falhar em monitorar o estado do link ppp, provavelmente você terá que fazer isso por ele.

Um bom local para verificar o estado e reiniciar o packet_forwarder seria em /etc/ppp/ip-up.d/ . Você pode colocar um script de shell lá que será executado quando o link ppp for estabelecido.

Veja o conteúdo de /etc/ppp/ip-up para mais detalhes.

    
por 14.03.2018 / 15:08