経緯
先日の投稿でSORACOMの無通信タイムアウトを回避するためにpingを定期送信する処理を記載しましたが、この処理を入れても再起動すると「ping: pong.soracom.io: 名前解決に一時的に失敗しました」というのが継続的に発生してネットワークにつながらなくなる事象が2回に1回くらいの割合で発生するようになりました。※関連しているかもしれない記事
特定地域向け IoT SIM (旧日本向け Air SIM) SORACOM Air for セルラー トラブルシューティングガイド【接続できなくなった場合】
できれば原因を究明したいところでしたが、軽くググってってもわからなかったし再起動で直る(また繋がるようになる)ことがわかっていたので、つながらない状態が10分続くと再起動するように処理を改造しました。
60秒周期にsoracomにpingを飛ばして、10回失敗したら再起動する処理
この処理を、/usr/local/bin/PingSend.pyに保存します。参考にしてみてください。
#!/usr/bin/python
# coding: UTF-8
import time
import os
count=0
while True:
time.sleep(60)
ret = os.system('ping -c 3 pong.soracom.io')
if ret==0:
count=0
else:
count=count+1
if count>=10:
os.system('shutdown -r now')
0 件のコメント:
コメントを投稿