if chinanet is False: print("疑似存在网络异常") getNet() else: print("网络正常") while True: ret = os.system("python3 /home/pi/Documents/8-17/simplest.py") if ret == 0: # simplest.py 运行成功,退出循环 break else: # simplest.py 运行失败,判断是否是网络中断导致的 chinanet = isNetChainOK() if chinanet is False: print("simplest.py 运行失败,且网络异常,尝试重新连接网络") getNet() else: print("simplest.py 运行失败,重新启动 simplest.py") 如果网络中断 关闭simplest,py
时间: 2023-12-06 09:41:54 浏览: 156
测试网络是否正常
可以在代码中加入判断网络状态的函数并在网络异常时关闭 simplest.py,可以参考以下代码:
```
import os
import time
import requests
def isNetChainOK():
try:
requests.get("http://www.baidu.com", timeout=2)
return True
except:
return False
def getNet():
os.system("sudo ifconfig wlan0 down")
time.sleep(1)
os.system("sudo ifconfig wlan0 up")
time.sleep(1)
os.system("sudo dhclient wlan0")
chinanet = isNetChainOK()
if chinanet is False:
print("疑似存在网络异常")
getNet()
else:
print("网络正常")
while True:
ret = os.system("python3 /home/pi/Documents/8-17/simplest.py")
if ret == 0:
# simplest.py 运行成功,退出循环
break
else:
# simplest.py 运行失败,判断是否是网络中断导致的
chinanet = isNetChainOK()
if chinanet is False:
print("simplest.py 运行失败,且网络异常,关闭 simplest.py")
os.system("sudo pkill -f simplest.py")
break
else:
print("simplest.py 运行失败,重新启动 simplest.py")
```
这样,在运行 simplest.py 时如果出现网络异常导致运行失败,程序会关闭 simplest.py 并退出循环。
阅读全文