ブログ

Armadillo-IoT(G3/G3L):connection-recoverでping成功時のログを出力する

at_kazutaka.bito
2021年4月8日 13時11分

Armadillo-IoT(G3/G3L)では、3G/LTE再接続サービス(connection-recover)がデフォルトで動作します。

Armadillo-IoT ゲートウェイ G3L製品マニュアル
7.2.6.8. LTE再接続サービス

Armadillo-IoT ゲートウェイ G3製品マニュアル
6.2.6. 3G/LTE
 6.2.6.5. 3G/LTE再接続サービス

3G/LTE再接続サービス(connection-recover)は、microSIMが接続されており、
NetworkManagerの有効な3G/LTEのコネクション設定がされているとき、
120秒に一度、コネクションの状態を監視します。

デフォルトでは、ping 8.8.8.8が失敗した場合、/var/log/syslogにログが出力されます。
ここでは、ping 8.8.8.8が成功した場合も、/var/log/syslogにログを出力するようにします。

/usr/bin/connection-recoverd内のis_connectを下記のように変更(※)します。
※)"# SUCCESS"というコメントがある1行を追加しています。

is_connect() {
        ping -s 1 -c ${PING_COUNT} -w 10 -I ${NETWORK_IF} ${PING_DEST_IP} > /dev/null 2>&1
        if [ $? -eq 0 ]; then
                logger -t connection-recover "$DEVICE ping success"   # SUCCESS
                return 0
        else
                logger -t connection-recover "$DEVICE ping fail"
        fi
        return 1
}


/usr/bin/connection-recoverdを上記のように変更後、connection-recoverのリスタートすると、
/var/log/syslogでは、下記のようなログで120秒ごとにping 8.8.8.8が成功していることを確認できます。

Mar 30 03:52:52 armadillo connection-recover: ttyACM0 ping success
Mar 30 03:54:55 armadillo connection-recover: ttyACM0 ping success
Mar 30 03:56:57 armadillo connection-recover: ttyACM0 ping success